2009-09-16 12 views
0

Je transfère des données d'une ancienne base de données vers une nouvelle, et je dois conserver l'ID de l'ancienne base de données lors de leur insertion dans la nouvelle base de données. Cependant, ça ne marche pas.Insertion de lignes dans une table avec une identité prédéfinie

C'est ma requête:

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 se plaint que « Une valeur explicite pour la colonne d'identité dans le tableau RentalEase.dbo.tblTenant » ne peut être spécifié lorsqu'une liste de colonne est utilisée et IDENTITY_INSERT est activée "

Que dois-je faire pour que cela fonctionne?

Répondre

6

"Une valeur explicite pour la colonne d'identité dans la table RentalEase.dbo.tblTenant 'peut uniquement être spécifiée lorsqu'une liste de colonnes est utilisée et IDENTITY_INSERT sur ON."

Il faut donc utiliser une liste de colonnes, comme le message indique:

SET IDENTITY_INSERT RentalEase.dbo.tblTenant ON 
INSERT INTO RentalEase.dbo.tblTenant ([ID], [fieldname], [fieldname], ...) 
SELECT [ID], ... 
+1

Vous me devança. Exactement ce que j'allais dire. – HLGEM

Questions connexes