我有一张表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值。
我该怎么做?
答案 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)
)