Sql server 在sqlserver存储过程中使用不同形式的Insert查询有什么好处吗?

Sql server 在sqlserver存储过程中使用不同形式的Insert查询有什么好处吗?,sql-server,stored-procedures,Sql Server,Stored Procedures,我看到一些存储过程使用以下两种格式编写: 我很想知道他们的方法1或方法2是否有任何优势?原因 谢谢 也差不多 INSERT INTO…SELECT(某种快捷方式)允许您插入SELECT语句结果中的记录,例如 INSERT INTO FooBar(Col1, Col2) SELECT Col1, Col2 FROM sourceTable 没有性能差异。这只是偏好的问题 但使用方法2,您可以执行如下操作以插入多个记录: Insert Into Tablname(col1,col2) selec

我看到一些
存储过程使用以下两种格式编写:

我很想知道他们的方法1或方法2是否有任何优势?原因

谢谢

也差不多

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

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

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

但使用方法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');

要了解更多信息,请查看链接。

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

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

您好@491243,我想让您知道,我没有使用FROM子句仅选择传递给SP的参数。因此,它们之间的差异是否与性能有关?@SHEKHARSHETE我只是扩展了解释。基本上都是一样的。
INSERT INTO Table1 (ID, Value)
VALUES (1, 'Test1'), (2, 'Test2'), (3, 'Test3');