• The two basic forms of the statement are:

    --the first table must already exist. You can use * if inserting ALL columns,

    --otherwise you must give a column list

    INSERT INTO existing_table

    SELECT *

    FROM source_table

    --or

    INSERT INTO existing_table

    (Col1,Col2,Col3)

    SELECT Val1,Val2,Val3

    FROM source_table

    --if copying to a new table that doesn't exist you can do:

    SELECT *

    INTO new_table_name

    FROM old_tablename

    --note that with this latter method you are creating a heap table.

    --Creating a new table this way is great for a quick-and-dirty backup,

    --but it only creates the columns and data...no indexes, triggers, etc.

    For an actual copy of a table you can right click on the database name in SSMS and use

    the Generate Scripts function which will give you options to include copying user rights, triggers, FKs, and any data including IDENTITY inserts if that's what you need.