他们在sql server存储过程中以不同形式使用Insert Query的任何优点是什么?

时间:2013-09-04 07:44:07

标签: sql-server stored-procedures

我看到一些Stored Procedures使用以下两种格式编写

Method 1:
Insert Into Tablname(col1,col2) values (@col1,col2)

Method 2:
Insert Into Tablname(col1,col2) select @col1,@col2

我很想知道Method1或Method2是否有任何优势?原因是什么?

谢谢!

3 个答案:

答案 0 :(得分:0)

这是完全一样的。

INSERT INTO...SELECT一种的快捷方式)允许您从SELECT语句的结果中插入记录,例如

INSERT INTO FooBar(Col1, Col2)
SELECT Col1, Col2
FROM sourceTable

答案 1 :(得分:0)

没有性能差异。这只是偏好问题。

但是使用Method:2,您可以执行以下操作来插入多个记录:

Insert Into Tablname(col1,col2) 
select @col1,@col2
Union all
select @col2,col4

从SQL Server 2008(行构建)开始,您可以使用方法1执行以下操作:

INSERT INTO Tablname (col1, col2)
VALUES (1, 'First'), (2, 'Second'), (3, 'Third');

有关详细信息,请查看this链接。

答案 2 :(得分:0)

实际上这两者都是一样的。两者之间没有性能差异。还有一种方法可以在一个插入语句中插入多个记录。

INSERT INTO Table1 (ID, Value)
VALUES (1, 'Test1'), (2, 'Test2'), (3, 'Test3');