如何在Sql Server中的插入查询中自动生成UniqueIdentifier?

时间:2016-11-22 00:41:51

标签: sql-server

我有一张表AUDITS

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 )

但它表示无法在Audit_ID中插入NULL值。

我该怎么做?

1 个答案:

答案 0 :(得分: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)
)