别名在触发器中插入和删除虚拟表

时间:2009-07-08 13:55:14

标签: sql-server-2005 triggers output-clause

如何在MSSQL 2005的触发器中为插入和删除的虚拟表设置别名,以便我可以在触发器后面的OUTPUT子句中使用另一组插入和删除的虚拟表?

我需要按照http://msdn.microsoft.com/en-us/library/ms177564%28SQL.90%29.aspx在触发器中对这些表进行别名。

[编辑]

我应该更清楚,并提供一个例子我猜。

我想基本上做以下几点:

CREATE TRIGGER [dbo].[someTrigger]
ON [dbo].[Table_1]
FOR INSERT
AS

CREATE TABLE #tmpdatatable (field1 int, field2 int)

INSERT dbo.Table_2
    OUTPUT inserted.ident, ins.objid INTO #tmpdatatable
SELECT 2*objid
FROM inserted as ins (NOLOCK) 

.. do some stuff to the tmpdatatable .. 

DROP TABLE #tmpdatatable
PRINT 'processed inserted data'

1 个答案:

答案 0 :(得分:1)

您可以像对待任何其他表别名一样对它们进行别名:

FROM inserted as ins

FROM deleted as del

然后使用列定义的别名

SELECT ins.RowID, ins.Name
FROM inserted as ins