Сценарий:
Като разработчик на SQL Server, вие трябва да имате различни начини за вмъкване на данни в таблица на SQL Server.Понякога трябва просто да вмъкнете статични записи, понякога трябва да вмъкнете данни от друга таблица в съществуваща таблица. Нека да проверим различни техники за вмъкване на данни в таблицата на SQL Server.
Решение:
Нека първо създадем таблицата dbo.Customer, като използваме дефиниция по-долу.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) Използвайте множество вмъквания, за да вмъкнете данни в таблицата.
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) Използвайте единично вмъкване с множество стойности
Както в горния пример, ние използваме множество вмъквания. Всеки вмъкваше един запис. В SQL Server можем да използваме единично вмъкване с множество стойности, както е показано по-долу.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) Използвайте Select with Insert за вмъкване на записи
Можем да използваме заявка Insert with Select, за да вмъкнем резултантния набор, върнат от заявката за избор.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) Използвайте Insert, без да предоставяте имена на колони
Както видяхте в горните примери, използвах списък с колони с Insert, не е нужно да го използвате, ако знаете, че редът на колоните и стойностите, които използвате, също са в ред. Винаги използвам списъка с колони при вмъкване и избирам, за да се уверя, че вмъквам правилни данни в таблицата в правилните колони.--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) Вмъкване на данни от друга таблица в таблицата на местоназначението
Както видяхме, резултатите от заявката за избор могат да бъдат вмъкнати в таблица. В горните примери сме използвали статичните стойности с select, Можете да изберете данните от таблица, изглед и функция и т.н., за да вмъкнете във вашата таблица. Да речем, ако искаме да вмъкнем данни в таблицата dbo.Customer от таблицата dbo.CustomerUS. можете да използвате заявката по-долу.--Insert into table from another table Select into dbo.Customer(FName,LName,Age,DOB,Salary) Select FName,LName,Age,DOB,Salary from dbo.CustomerUS
Видео демонстрация:Как да вмъкнете данни в таблицата на SQL Sever чрез използване на T-SQL изрази