Scenariusz:
Jako programista SQL Server musisz mieć różne sposoby wstawiania danych do tabeli SQL Server.Czasami musisz po prostu wstawić statyczne rekordy, czasami musisz wstawić dane z innej tabeli do istniejącej tabeli. Sprawdźmy różne techniki wstawiania danych do tabeli SQL Server.
Rozwiązanie:
Najpierw utwórzmy tabelę dbo.Customer, korzystając z poniższej definicji.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) Użyj wielu wstawek, aby wstawić dane do tabeli.
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) Użyj pojedynczej wstawki z wieloma wartościami
Jak w powyższym przykładzie, używamy wielu wstawek. Każdy wstawiał pojedynczy rekord. W SQL Server możemy użyć pojedynczej Insert z wieloma wartościami, jak pokazano poniżej.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) Użyj Wybierz z Wstaw, aby wstawić rekordy
Możemy użyć polecenia Wstaw z zapytaniem wybierającym, aby wstawić zestaw wyników zwrócony przez zapytanie wybierające.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) Użyj Wstaw bez podawania nazw kolumn
Jak widziałeś w powyższych przykładach, użyłem listy kolumn z opcją Insert, nie musisz jej używać, jeśli wiesz, że kolejność kolumn i wartości, których używasz, są również w kolejności. Zawsze używam listy kolumn we wstawieniu i zaznaczam, aby upewnić się, że wstawiam prawidłowe dane do tabeli w poprawnych kolumnach.--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) Wstaw dane z innej tabeli do tabeli docelowej
Jak widzieliśmy, wyniki zapytania wybierającego można wstawić do tabeli. W powyższych przykładach użyliśmy wartości statycznych z opcją select. Możesz wybrać dane z tabeli, widoku i funkcji itp. do wstawienia do tabeli. Powiedzmy, czy chcemy wstawić dane do tabeli dbo.Customer z tabeli dbo.CustomerUS. możesz użyć poniższego zapytania.--Insert into table from another table Select into dbo.Customer(FName,LName,Age,DOB,Salary) Select FName,LName,Age,DOB,Salary from dbo.CustomerUS
Prezentacja wideo:Jak wstawić dane do tabeli serwera SQL za pomocą instrukcji T-SQL