我正在将数据从旧数据库传输到新数据库,并且在将数据库插入新数据库时需要保留旧数据库中的ID。但是,它没有用。
这是我的查询:
SET IDENTITY_INSERT RentalEase.dbo.tblTenant ON
INSERT INTO RentalEase.dbo.tblTenant SELECT [ID]
,1
,[PropertyID]
,0
,[UnitID]
,[TenantName]
,[Sex]
,[BirthDate]
,[SSNO]
,[CoTenant1]
,[CoTenant1Sex]
,[CoTenant1BirthDate]
,[CoTenant1SSNO]
,[CoTenant2]
,[CoTenant2Sex]
,[CoTenant2BirthDate]
,[CoTenant2SSNO]
,[CoTenant3]
,[CoTenant3Sex]
,[CoTenant3BirthDate]
,[CoTenant3SSNO]
,[CarColor]
,[CarModel]
,[CarYear]
,[CarState]
,[CarPlateNumber]
,[Memo]
,[Address1]
,[Address2]
,[Address3]
,[Address4]
,[Phone]
,[ReferBy]
,[BeginDate]
,[NoticeGiven]
,[LeaseMonth2Month]
,[LeaseEnds]
,[DepositPaid]
,[DepositRefundable]
,[RefundMemo]
,[RentDueDay]
,[Charge1]
,[Charge1Amount]
,[Charge2]
,[Charge2Amount]
,[Charge3]
,[Charge3Amount]
,[Charge4]
,[Charge4Amount]
,[ContractText]
,[BalanceDue]
FROM [oldTables].[dbo].[tblCurrentTenant]
SET IDENTITY_INSERT RentalEase.dbo.tblTenant OFF
SQL Server抱怨“只有在使用列列表并且IDENTITY_INSERT为ON时才能指定表RentalEase.dbo.tblTenant中的标识列的显式值。”
我需要做些什么才能让它发挥作用?
答案 0 :(得分:6)
“只有在使用列列表且IDENTITY_INSERT为ON时,才能指定表RentalEase.dbo.tblTenant'中的标识列的显式值。”
因此请使用列列表,如消息所示:
SET IDENTITY_INSERT RentalEase.dbo.tblTenant ON
INSERT INTO RentalEase.dbo.tblTenant ([ID], [fieldname], [fieldname], ...)
SELECT [ID], ...