【发布时间】:2014-11-11 11:55:32
【问题描述】:
假设我有一个这样的 CREATE TABLE 代码:
CREATE TABLE Test (
ID int NOT NULL IDENTITY(1,1),
SortIndex int,
Name nvarchar(50) NOT NULL
);
我想知道是否可以在 MSSQL 中创建一个表,该表能够在我运行 INSERT 时将 ID 的值插入到 SortIndex 列中。
所以我会运行这个 INSERT:
INSERT INTO Test (Name) VALUES ('Awesome Dude');
通常会产生该行:
ID,SortIndex,Name
1,NULL,"Awesome Dude"
但我希望它自动成为:
ID,SortIndex,Name
1,1,"Awesome Dude"
这甚至可以通过更改 CREATE TABLE 脚本来实现,还是我必须使用 TRIGGER?
【问题讨论】:
-
在这种情况下,sortindex 列提供了 ID 没有提供的什么?
-
一个触发器将是要走的路
-
@DavidG 它使他能够更新它。这是一个排序键,我希望从名称中可以更改。
-
@AllanS.Hansen 没错 :)
-
@DavidG 但触发器不会自动知道触发它的插入的身份吗?因此,在同时发生两个插入的情况下,会触发两个触发器,每行一个。还是我在这里大错特错?
标签: sql sql-server sql-insert create-table