次の 2 つの形式Stored Procedures
で書かれたものを見たことがあります。
Method 1:
Insert Into Tablname(col1,col2) values (@col1,col2)
Method 2:
Insert Into Tablname(col1,col2) select @col1,@col2
Method1 または Method2 の利点があるかどうかを知りたいです。理由?
ありがとう!
次の 2 つの形式Stored Procedures
で書かれたものを見たことがあります。
Method 1:
Insert Into Tablname(col1,col2) values (@col1,col2)
Method 2:
Insert Into Tablname(col1,col2) select @col1,@col2
Method1 または Method2 の利点があるかどうかを知りたいです。理由?
ありがとう!
実はこれはどちらも同じです。両者に性能差はありません。1 つの insert into ステートメントで複数のレコードを挿入する別の方法もあります。
INSERT INTO Table1 (ID, Value)
VALUES (1, 'Test1'), (2, 'Test2'), (3, 'Test3');
それはかなり同じです。
(ショートカットの一種INSERT INTO...SELECT
)を使用すると、ステートメントの結果からレコードを挿入できます。SELECT
INSERT INTO FooBar(Col1, Col2)
SELECT Col1, Col2
FROM sourceTable
性能差はありません。それは好みの問題です。
ただし、 Method:2 を使用すると、以下のようにして複数のレコードを挿入できます。
Insert Into Tablname(col1,col2)
select @col1,@col2
Union all
select @col2,col4
SQL Server 2008 (Row Construction) 以降では、方法 1 で次のようなことができます。
INSERT INTO Tablname (col1, col2)
VALUES (1, 'First'), (2, 'Second'), (3, 'Third');
詳細については、このリンクをご覧ください。