2013-12-09 97 views
0

尋求一些幫助,因爲這個SQL對我而言是新事物。我被要求將數據從一張表複製到另一張用於計費應用程序的數據。爲此,我只需使用SELECT INTO語句複製整個表格。應用程序現在拒絕將新記錄插入到我已複製的表中。我正在使用SQL Server 2008,並建議它與標識列有關,但不確定。如上所述,這對我來說都是新的。任何幫助或建議從哪裏開始將是非常棒的。先謝謝你。SQL Server身份問題

我副本看起來像這樣的表...

InsuranceID  int    IDENTITY, 
Insurance_ID  varchar(20), 
Insurance_Name  varchar(100), 
Address   varchar(100), 

..等等。
這是用於將新記錄插入表中的存儲過程。

Insert Into tblInsuranceCompanies 
    (Insurance_ID, 
    InsuranceName, 
    InsuranceTypeID, 
    Telephone, 
    Extension, 
    Fax, 
    Address, 
    City, 
    State, 
    Zip_Code) 
Values 
    (@InsuranceID, 
    @Name, 
    @TypeID, 
    @Telephone, 
    @Extension, 
    @Fax, 
    @Address, 
    @City, 
    @State, 
    @Zip) 

SELECT @@IDENTITY AS InsuranceID 
+3

你能分享你的插入語句嗎? –

+4

並收到確切的錯誤消息。 –

+0

當最終用戶嘗試通過應用程序添加另一條記錄時收到錯誤。 「運算符'='沒有爲'DBNull'類型定義,而輸入'Integer'」 – user2891487

回答

1

首先,我認爲這是一個IDENTITY_INSERT問題,我建議這樣的:

SET IDENTITY_INSERT products ON 
GO 

INSERT INTO YOUR_TABLE 
SELETC * FROM TempTable 
GO 

SET IDENTITY_INSERT products OFF 
GO 

但經過:試圖插入數據,可以使用SET IDENTITY_INSERT產品ON

像在此之前 注意到在選擇列表中不存在Identity列,並且由於所有的列定義都是NOT NULL,我猜想你試圖插入的值中有一個是null,這是導致錯誤的原因。

+0

如果你看看'INSERT'語句,你會看到OP沒有嘗試插入'IDENTITY'列... –

+0

好的,我沒注意到... – Aram