如何在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'
答案 0 :(得分:1)
您可以像对待任何其他表别名一样对它们进行别名:
FROM inserted as ins
或
FROM deleted as del
然后使用列定义的别名
SELECT ins.RowID, ins.Name
FROM inserted as ins