2016-11-22 97 views
2

我有一個表審覈如何在Sql Server中插入查詢時自動生成UniqueIdentifier?

CREATE TABLE AUDITS 
(
    Audit_ID uniqueidentifier not null, 
    LocationID char(10) 
     FOREIGN KEY REFERENCES LOCATIONS (LocationID) not null, 
    DateChangement date not null, 
    NomColonneChangé varchar (20) not null, 
    AncienneValeur varchar (20) not null, 
    NouvelleValeur varchar (20) not null, 

    CONSTRAINT pk_AUDIT PRIMARY KEY (Audit_ID) 
) 

現在我有一個插入到該表的更新觸發,但我想通過SQL Server自動生成的Audit_ID。

我認爲這種方式是正確的:

if (......) 
.... 
... 
INSERT INTO [MultiLocation].[dbo].[les_AUDITS] 
     ([LocationID] 
     ,[DateChangement] 
     ,[NomColonneChangé] 
     ,[AncienneValeur] 
     ,[NouvelleValeur]) 
    VALUES 
     (@LocationID , 
     @DateChangement , 
     @NomColonneChangée , 
     @AncienneValeur, 
     @NouvelleValeur) 

但它說,這是不可能插入一個NULL值到Audit_ID

我應該怎麼辦呢?

回答

5

當你創建一個表,你可以用uniqueidentifier數據類型創建一個列像你一樣,用默認DEFAULT newid()如下

CREATE TABLE AUDITS 
(
Audit_ID uniqueidentifier not null DEFAULT newid(), 
LocationID char(10) FOREIGN KEY REFERENCES LOCATIONS (LocationID) not null, 
DateChangement date not null, 
NomColonneChangé varchar (20) not null, 
AncienneValeur varchar (20) not null, 
NouvelleValeur varchar (20) not null, 
constraint pk_AUDIT primary key(Audit_ID) 
) 
+0

感謝。有效 –

相關問題