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