SQL Server标识问题

SQL Server标识问题,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,正在寻求帮助,因为这个SQL对我来说是新事物。我被要求将数据从一个表复制到另一个用于计费应用程序的表。为此,我只需使用SELECT INTO语句复制整个表。应用程序现在拒绝向我复制的表中插入新记录。我使用的是SQLServer2008,建议它与Identity列有关,但不确定。如上所述,这对我来说是全新的。任何关于从哪里开始的帮助或建议都会很棒。先谢谢你 我复制的桌子看起来像这样 InsuranceID int IDENTITY, Insurance_ID

正在寻求帮助,因为这个SQL对我来说是新事物。我被要求将数据从一个表复制到另一个用于计费应用程序的表。为此,我只需使用SELECT INTO语句复制整个表。应用程序现在拒绝向我复制的表中插入新记录。我使用的是SQLServer2008,建议它与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

首先,我认为这是一个身份插入问题,我建议: 在尝试插入数据之前,可以在上使用SET IDENTITY\u insert products

像这样:

SET IDENTITY_INSERT products ON
GO

INSERT INTO YOUR_TABLE
SELETC * FROM TempTable
GO

SET IDENTITY_INSERT products OFF
GO

但是注意到标识列不在选择列表中,并且由于所有列定义都不是空的,我猜您尝试插入的其中一个值为null,这是导致错误的原因。

您可以共享您的insert语句吗?以及您收到的确切错误消息。当最终用户尝试通过应用程序添加另一条记录时,会收到错误。“未为类型“DBNull”和类型“Integer”定义运算符“=”。insert语句是一个存储过程。这是该过程中的代码…新表是否定义了标识?如果没有,您正在尝试插入dbnull以确保ID如果查看
insert
语句,您将看到OP没有尝试插入
IDENTITY
列中。。。