2016-11-22 2 views
2

私は今、私は、このテーブルに挿入するが、私はaudit_idでは、SQL Serverによって自動的に生成させたい更新トリガーを持つテーブル監査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) 
) 

を持っています。

私はこの方法が正しいと思った:

if (......) 
.... 
... 
INSERT INTO [MultiLocation].[dbo].[les_AUDITS] 
     ([LocationID] 
     ,[DateChangement] 
     ,[NomColonneChangé] 
     ,[AncienneValeur] 
     ,[NouvelleValeur]) 
    VALUES 
     (@LocationID , 
     @DateChangement , 
     @NomColonneChangée , 
     @AncienneValeur, 
     @NouvelleValeur) 
しかし、それは Audit_IDにNULL値を挿入することは不可能だと言います。

どうすればよいですか?あなたがテーブルを作成するとき

答えて

5

は、あなたがやったようuniqueidentifierデータ型の列を作成し、

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

おかげで以下のようにデフォルトDEFAULT newid()とすることができます。出来た –

関連する問題