Escenario:
Como desarrollador de SQL Server, debe encontrar diferentes formas de insertar datos en la tabla de SQL Server.A veces, simplemente debe insertar registros estáticos, a veces debe insertar datos de otra tabla en una tabla existente. Veamos diferentes técnicas para insertar datos en la tabla de SQL Server.
Solución:
Primero creemos la tabla dbo.Customer usando la definición a continuación.USE yourDatabaseName Go Create Table dbo.Customer( Id int identity(1,1), FName VARCHAR(50), LName VARCHAR(50), Age int, DOB Date, Salary Numeric(6,2))
1) Utilice inserciones múltiples para insertar datos en la tabla.
Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Values('Aamir','Shahzad',36,'1980-01-01',5000.50) GO Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Values ('Raza','M',33,'1983-03-03',4900.34) GO Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Values ('John','Smith',26,'1990-04-05',5000.50)
2) Usar un único inserto con varios valores
Como en el ejemplo anterior, usamos múltiples inserciones. Cada una estaba insertando un solo registro. En SQL Server podemos usar una sola inserción con múltiples valores como se muestra a continuación.Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Values('Aamir','Shahzad',36,'1980-01-01',5000.50), ('Raza','M',33,'1983-03-03',4900.34), ('John','Smith',26,'1990-04-05',5000.50)
3) Use Seleccionar con Insertar para insertar registros
Podemos usar Insertar con consulta de selección para insertar el conjunto de resultados devuelto por la consulta de selección.Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Select 'Aamir' as FName,'Shahzad' as LName,36 as Age,'1980-01-01' as DOB,5000.50 as Salary union all Select 'Raza','M',33,'1983-03-03',4900.34 Union all Select 'John','Smith',26,'1990-04-05',5000.50
4) Use Insertar sin proporcionar nombres de columna
Como ha visto en los ejemplos anteriores, he usado la lista de columnas con Insertar, no tiene que usar eso si sabe que el orden de las columnas y los valores que está usando también están en orden. Siempre uso la lista de columnas en Insertar y seleccionar para asegurarme de que estoy insertando los datos correctos en la tabla en las columnas correctas.--Insert without provide Column Names Insert into dbo.Customer Select 'Aamir' as FName,'Shahzad' as LName,36 as Age,'1980-01-01' as DOB,5000.50 as Salary union all Select 'Raza','M',33,'1983-03-03',4900.34 Union all Select 'John','Smith',26,'1990-04-05',5000.50
Also we can use the insert without Column Names with Values option
Insert into dbo.Customer Values('Aamir','Shahzad',36,'1980-01-01',5000.50), ('Raza','M',33,'1983-03-03',4900.34), ('John','Smith',26,'1990-04-05',5000.50)
5) Insertar datos de otra tabla a la tabla de destino
Como hemos visto, los resultados de la consulta de selección se pueden insertar en la tabla. En los ejemplos anteriores, hemos utilizado los valores estáticos con select. Puede seleccionar los datos de la tabla, la vista y la función, etc. para insertarlos en su tabla. Digamos si queremos insertar datos en la tabla dbo.Customer desde la tabla dbo.CustomerUS. puede usar la siguiente consulta.--Insert into table from another table Select into dbo.Customer(FName,LName,Age,DOB,Salary) Select FName,LName,Age,DOB,Salary from dbo.CustomerUS
Demostración en video:cómo insertar datos en una tabla de servidor SQL mediante sentencias T-SQL