Here is a basic concept you should know. It is about inserting records, specifically inserting multiple records with a single insert statement.
Can we insert multiple rows using a single insert statement?
Yes, this is possible, however code has to be constructed as per the version of SQL Server. SQL Server 2008 started supporting an enhanced VALUES clause that allows us to submit multiple rows separated by comma. If the version is lower than 2008, UNION ALL has to be used for constructing the code that helps us to build a virtual table on values.
Note that both these operations are processed as an atomic operation, hence a failure on one row fails the whole operation, inserting none of the records into the table.
Here is a sample code.
-- Connecting with the temp table USE tempdb; GO -- Creating a test table CREATE TABLE dbo.TestTable ( Id int PRIMARY KEY , Value varchar(20) NOT NULL ); GO -- Inserting multiple rows with enhanced VALUES clause -- This is possible only with SQL Server 2008 or later INSERT INTO dbo.TestTable VALUES (1, 'abc'), (2, 'abc'), (3, 'abc') -- Inserting multiple rows with UNION ALL -- This is what we have used with older version INSERT INTO dbo.TestTable SELECT 4, 'abc' UNION ALL SELECT 5, 'abc' UNION ALL SELECT 6, 'abc'; SELECT * FROM dbo.TestTable;
No comments:
Post a Comment