SintaxisSyntax

[ INTO new_table ]
[ ON filegroup ]

ArgumentosArguments

tabla_nuevanew_tableEspecifica el nombre de una nueva tabla que se va a crear en función de las columnas de la lista de selección y de las filas elegidas desde el origen de datos.Specifies the name of a new table to be created, based on the columns in the select list and the rows chosen from the data source.

El formato de new_table se determina mediante la evaluación de las expresiones de la lista de selección.The format of new_table is determined by evaluating the expressions in the select list.Las columnas de new_table se crean en el orden que especifica la lista de selección.The columns in new_table are created in the order specified by the select list.Cada columna de new_table tiene el mismo nombre, tipo de datos, nulabilidad y valor que la expresión correspondiente de la lista de selección.Each column in new_table has the same name, data type, nullability, and value as the corresponding expression in the select list.La propiedad IDENTITY de una columna se transfiere excepto bajo las condiciones definidas en "Trabajar con columnas de identidad" en la sección Comentarios.The IDENTITY property of a column is transferred except under the conditions defined in "Working with Identity Columns" in the Remarks section.

La columna de identidad aparece más de una vez en la lista de selección.The identity column is listed more than one time in the select list.

La columna de identidad forma parte de una expresión.The identity column is part of an expression.

La columna de identidad es de un origen de datos remoto.The identity column is from a remote data source.

Si se cumple alguna de estas condiciones, la columna se crea como NOT NULL en lugar de heredar la propiedad IDENTITY.If any one of these conditions is true, the column is created NOT NULL instead of inheriting the IDENTITY property.Si una columna de identidad se requiere en la nueva tabla pero este tipo de columna no está disponible o desea un valor de inicialización o de incremento diferente de la columna de identidad de origen, defina la columna en la lista de selección utilizando la función IDENTITY.If an identity column is required in the new table but such a column is not available, or you want a seed or increment value that is different than the source identity column, define the column in the select list using the IDENTITY function.Vea "Crear una columna de identidad utilizando la función IDENTITY" en la sección Ejemplos siguiente.See "Creating an identity column using the IDENTITY function" in the Examples section below.

Los índices, restricciones y desencadenadores definidos en la tabla de origen no se transfieren a la tabla nueva, ni se pueden especificar en la instrucción SELECT...INTO.Indexes, constraints, and triggers defined in the source table are not transferred to the new table, nor can they be specified in the SELECT...INTO statement.Si se requieren estos objetos, se pueden crear después de ejecutar la instrucción SELECT...INTO.If these objects are required, you can create them after executing the SELECT...INTO statement.

Especificar una cláusula ORDER BY no garantiza que las filas se inserten en el orden especificado.Specifying an ORDER BY clause does not guarantee the rows are inserted in the specified order.

Cuando se incluye una columna dispersa en la lista de selección, la propiedad de la columna dispersa no se transfiere a la columna de la nueva tabla.When a sparse column is included in the select list, the sparse column property does not transfer to the column in the new table.Si esta propiedad es necesaria en la nueva tabla, modifique la definición de columna después de ejecutar la instrucción SELECT...INTO para que incluya esta propiedad.If this property is required in the new table, alter the column definition after executing the SELECT...INTO statement to include this property.

Cuando se incluye una columna calculada en la lista de selección, la columna correspondiente de la nueva tabla no es una columna calculada.When a computed column is included in the select list, the corresponding column in the new table is not a computed column.Los valores de la columna nueva son los que se calcularon en el momento en que se ejecutó SELECT...INTO.The values in the new column are the values that were computed at the time SELECT...INTO was executed.

En el ejemplo siguiente se utiliza la función IDENTITY para crear una columna de identidad en la nueva tabla Person.USAddress de la base de datos AdventureWorks2012AdventureWorks2012.The following example uses the IDENTITY function to create an identity column in the new table Person.USAddress in the AdventureWorks2012AdventureWorks2012 database.Se requiere esto porque la instrucción SELECT que define la tabla contiene una unión, que hace que la propiedad IDENTITY no transfiera a la nueva tabla.This is required because the SELECT statement that defines the table contains a join, which causes the IDENTITY property to not transfer to the new table.Tenga en cuenta que los valores de inicialización e incremento especificados en la función IDENTITY son diferentes de los de la columna AddressID de la tabla de origen Person.Address.Notice that the seed and increment values specified in the IDENTITY function are different from those of the AddressID column in the source table Person.Address.

-- Determine the IDENTITY status of the source column AddressID.
SELECT OBJECT_NAME(object_id) AS TableName, name AS column_name,
is_identity, seed_value, increment_value
FROM sys.identity_columns
WHERE name = 'AddressID';
-- Create a new table with columns from the existing table Person.Address.
-- A new IDENTITY column is created by using the IDENTITY function.
SELECT IDENTITY (int, 100, 5) AS AddressID,
a.AddressLine1, a.City, b.Name AS State, a.PostalCode
INTO Person.USAddress
FROM Person.Address AS a
INNER JOIN Person.StateProvince AS b
ON a.StateProvinceID = b.StateProvinceID
WHERE b.CountryRegionCode = N'US';
-- Verify the IDENTITY status of the AddressID columns in both tables.
SELECT OBJECT_NAME(object_id) AS TableName, name AS column_name,
is_identity, seed_value, increment_value
FROM sys.identity_columns
WHERE name = 'AddressID';