2013-07-01 73 views
0

我想將Variables中的行復制到SQL Server中的VariablesTest。這兩個具有相同的列,數據類型,等等。通過下面的答案閱讀,我想像這是去將行從一個表複製到另一個具有相同結構的行

set IDENTITY_INSERT VariablesTest ON 
insert VariablesTest Select * from Variables 
set IDENTITY_INSERT VariablesTest OFF 

但SQL Server Management Studio中拋出一個錯誤的方式:

An explicit value for the identity column in table 'VariablesTest' can only be specified when a column list is used and IDENTITY_INSERT is ON. 

唉...

+0

答案出現在你的錯誤信息中......當使用列列表時。 – MatBailie

回答

1

錯誤消息告訴你使用一列L「時的列列表,使用時,才指定」 IST:

set IDENTITY_INSERT VariablesTest ON 
insert VariablesTest(column1,column2,etc) Select column1,column2,etc from Variables 
set IDENTITY_INSERT VariablesTest OFF 
0

如果您知道列是你還需要列出他們的插入部分,但選擇部分可以使用星號兩個表中的同...

set IDENTITY_INSERT VariablesTest ON 

INSERT VariablesTest (col1, col2, col3, col4,...) SELECT * FROM Variables 

set IDENTITY_INSERT VariablesTest OFF 

。 ..這是不穩定的代碼,如果列被添加到兩個表或只有一個,它會打破。因此,儘管這是可能的,但分別列出兩組列是首選方法。使用諸如Red Gate的SQL Prompt之類的工具可以讓您自動將星號自動擴展爲以逗號分隔的列列表,這也是我經常用來保存輸入和錯誤的選項。

相關問題