SQL Server身份问题

时间:2013-12-09 18:12:10

标签: sql sql-server sql-server-2008

寻找一些帮助,因为这个SQL对我来说是新的。我被要求将数据从一个表复制到另一个用于计费应用程序的表。为此,我只使用SELECT INTO语句复制整个表。应用程序现在拒绝将新记录插入到我复制的表中。我正在使用SQL Server 2008,并建议它与Identity列有关,但不确定。如上所述,这对我来说都是新的。任何帮助或建议从哪里开始将是非常棒的。先感谢您。

我复制的表看起来像......

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

1 个答案:

答案 0 :(得分:1)

首先我认为这是一个Identity_Insert问题,我建议这样做: 在尝试插入数据之前,您可以使用SET IDENTITY_INSERT产品

像这样:

SET IDENTITY_INSERT products ON
GO

INSERT INTO YOUR_TABLE
SELETC * FROM TempTable
GO

SET IDENTITY_INSERT products OFF
GO

但是在注意到选择列表中没有Identity列之后,并且因为所有列定义都是NOT NULL,我猜你要插入的值之一是null,这导致错误。