tim*_*tim 2 sql t-sql sql-server triggers
我有一个而不是触发器.我在变量中有一个值.
我想将值插入其中一列并使用inserted中的字段.这就是我想要完成的事情:
declare @someLocalVariable varchar(9)
set @someLocalVariable = dbo.someLocalUDF()
INSERT myTable (field1, field2, field3)
VALUES (@someLocalVariable, (select field2, field3 from inserted))
Run Code Online (Sandbox Code Playgroud)
INSERT INTO myTable (
field1,
field2,
field3
) SELECT
@someLocalVariable,
field2,
field3
FROM
INSERTED
Run Code Online (Sandbox Code Playgroud)
请记住,如果这是由批量插入触发的(即INSERTED具有多个记录),则所有记录也将插入到目标表中.
(这正是它应该做的恕我直言,但出于某种原因,人们通常会忘记这一点.)
编辑
OP忘记说出他的问题是什么:生成唯一的主键值.那么,在这种情况下,一种方法是这样的:
CREATE TRIGGER
dbo.InsteadOfInsertMyTable
ON MyTable
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO myTable (
primaryKeyField,
field2,
field3
) SELECT
dbo.someUniqueValueGeneratorUDF(),
field2,
field3
FROM
INSERTED
END
GO
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1659 次 |
| 最近记录: |