2009-09-08 72 views
1

我正試圖手動插入一行到我的SQL Server數據表中。該表有5列,一個標識和四個數據列。我查看了this post,但是當我運行所選答案的查詢(當然,我的表名稱替換'GroupTable'後),我的SQL Server 2005管理工作室崩潰。要將記錄插入到具有標識列的表中的SQL語句?

我曾嘗試下面的語句變化,但顯然沒有運氣迄今:

INSERT INTO MyTable (id, col1, col2, col3, col4) 
VALUES (0, 'Column 1 Value', 'Column 2 Value', 'Column 3 Value', 'Column 4 Value') 

INSERT INTO MyTable (col1, col2, col3, col4) 
VALUES ('Column 1 Value', 'Column 2 Value', 'Column 3 Value', 'Column 4 Value') 

任何指針將不勝感激。

+0

這聽起來像你正在使用微軟的SQL Server Management Studio中從SQL Server 2005的產品管理MySQL。真正? – 2009-09-08 18:54:49

+0

不,這個問題被錯誤地標記爲MySQL。我正在使用MSSQL 2005. – Anders 2009-09-08 19:01:38

回答

7

通常,如果列被設置,從而省略了id列將產生一個新的自動ID。你的情況,你可以使用

SET IDENTITY_INSERT MyTable ON; 

INSERT INTO MyTable (id, col1, col2, col3, col4) 
VALUES (4567, 'Value1', 'Value2', 'Value3', 'Value4'); 

SET IDENTITY_INSERT MyTable OFF; 
+1

那麼,我的第二個查詢應該工作,因爲ID列是自動遞增和身份? – Anders 2009-09-08 18:58:20

+0

是的,如果這個列是真的用'ID INT IDENTITY NOT NULL PRIMARY KEY'創建的(或類似的)。也許在表格定義中缺少某些東西。 – 2009-09-08 19:01:10

+0

這就是它被創建爲:'[id] [int] IDENTITY(1,1)NOT NULL'。如果我嘗試在該行的末尾添加「PRIMARY KEY」,我收到一個錯誤消息,說我無法將多個PRIMARY KEY約束添加到表'MyTable'中。在表定義中還有另一部分:'CONSTRAINT [PK_MyTable] PRIMARY KEY CLUSTERED([id] ASC)',這是什麼定義ID列作爲PK? – Anders 2009-09-08 19:06:25

0

第一次聽說有一個SQL 2005管理客戶端的MySQL,但在任何情況下,你嘗試過直接在命令行中記錄到數據庫中,並從那裏執行插入語句?

+0

它不是MySQL,它是MSSQL 2005.其他人編輯我的文章並添加了MySQL標記。 – Anders 2009-09-08 18:54:47

0

不知道你的「崩潰」的意思是什麼,不過是第二條語句應該努力爲您提供有身份的規範在桌子上設置正確。右鍵單擊管理工作室中的表並查看id列的屬性。 isIdentity應該是「是」,標識增量應爲1

+0

驗證它是一個身份。同樣的問題。 – Anders 2009-09-08 19:07:04

1

正如一些人所說的,我想第二個應該爲你工作,但如果你在運行查詢崩潰Management Studio中,無論它是否損壞,您的問題都比格式錯誤的sql查詢更大。

工作室不應該崩潰,即使你寫一些很可怕的SQL ...它應該只是給你一個錯誤消息,並繼續前進。如果這類錯誤對您來說很常見,您可以考慮重新安裝管理工作室。

+0

我的第二個查詢不會使應用程序崩潰,我鏈接的帖子中的查詢確實如此。這是第一次發生這樣奇怪的事情。 – Anders 2009-09-08 18:59:04

相關問題