我正在使用AdventureWorks2012數據庫上的SQL Server。我正在使用觸發器。我想將任何新插入的行復制到名爲AuditTable的另一個表中的單個列中。基本上,無論何時插入到parson.address表中,我都想將所有行復制到AuditTable.prevValue列中。我知道如何插入等,我不知道如何寫入一列。SQL Server 2012.將行復制到另一個表上的單列中
這是一般的想法。
USE [AdventureWorks2012]
ALTER TRIGGER [Person].[sPerson] ON [Person].[Address]
FOR INSERT AS INSERT INTO AdventureWorks2012.HumanResources.AuditTable(PrevValue) select
AddressID,AddressLine1,AddressLine2,City, StateProvinceID, PostalCode, SpatialLocation, rowguid, ModifiedDate FROM Inserted
ERROR: The select list for the INSERT statement contains more items than the insert list. The number of SELECT values must match the number of INSERT columns.
謝謝你的任何援助。我搜索了負載,但無法在任何地方找到確切的解決方案。
2.以下是我已經完成。 SELECT N'ID:'+ CAST(AddressID AS NVARCHAR(20))+ N'Address:'+ AddressLine1 + N','+ AddressLine2 + City + CAST (200))+ CAST(rowguid AS NVARCHAR(100))+ CAST(ModifiedDate AS NVARCHAR(40)) FROM(StateProvinceID AS NVARCHAR(20))+ CAST(PostalCode AS NVARCHAR(20))+ CAST(SpatialLocation AS NVARCHAR插入。我認爲這應該是正確的,但其中一列是地理類型。 –
我把表設置爲nvarchar(300)並將所有轉換爲char,但是我得到的問題是「從字符串轉換爲uniqueidentifier時轉換失敗。」真的非常感謝你。 –