相关疑难解决方法(0)

触发器 - 在动态 SQL 中使用插入/删除的表

在触发器中,我试图创建一个唯一的表名(使用NEWID()),我可以存储在插入和删除的表中找到的数据。

Declare @NewID varchar(50) = Replace(convert(Varchar(50),NEWID()),'-','')
Declare @SQLStr varchar(8000)
Set @SQLStr= 'Select * into [TMPIns' + @newID + '] from inserted'
Exec (@SQLStr)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:无效的对象名称“插入”

我知道我可以做到:

Select * into #inserted from inserted
Set @SQLStr= 'Select * into [TMPIns' + @newID + '] from #inserted'
Exec (@SQLStr)
Run Code Online (Sandbox Code Playgroud)

但是我不想使用 TempDB,因为这些表会变得很大,而且我也觉得它是多余的。有没有办法避免创建#inserted?

trigger sql-server dynamic-sql sql-clr

7
推荐指数
1
解决办法
5760
查看次数

标签 统计

dynamic-sql ×1

sql-clr ×1

sql-server ×1

trigger ×1