尽管在表中插入一行时,没有任何理由(除了可能来自美学)使用INSERT INTO SELECT,使用这个和INSERT INTO VALUES有什么不同吗?
解决方法
使用INSERT INTO … SELECT方法可以根据一些标准从另一个表中选择您的值.
INSERT INTO dbo.TargetTable(Col1,Col2,....,ColN) SELECT Col1,...,ColN FROM dbo.SourceTable WHERE (some condition)
这可能会更容易一些,更可读写,而不是从源表中检索20个值,将其隐藏到临时变量中,以便您可以调用INSERT INTO dbo.Destination(….)VALUES( ……)声明…
DECLARE @Value1 INT DECLARE @Value2 DATETIME .... DECLARE @ValueN INT SELECT @Value1 = Col1,@Value2 = Col2,.... @ValueN = ColN FROM dbo.SourceTable WHERE (some condition) INSERT INTO dbo.TargetTable(Col1,ColN) VALUES(@Value1,@Value2,.....,@ValueN)
但是最后 – 这只是插入数据的INSERT语句 – 它只是一个个人偏好的问题,哪种方法更容易/更方便使用….