试图在sp_Executedsql中选择...到临时表#TempTable.不是它成功插入或没有,但有消息写入(359行受影响)意味着成功插入?下面的脚本
DECLARE @Sql NVARCHAR(MAX);
SET @Sql = 'select distinct Coloum1,Coloum2 into #TempTable
from SPCTable with(nolock)
where Convert(varchar(10), Date_Tm, 120) Between @Date_From And @Date_To';
SET @Sql = 'DECLARE @Date_From VARCHAR(10);
DECLARE @Date_To VARCHAR(10);
SET @Date_From = '''+CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-1,120)+''';
SET @Date_To = '''+CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-1,120)+''';
'+ @Sql;
EXECUTE sp_executesql @Sql;
Run Code Online (Sandbox Code Playgroud)
执行后,它返回我的消息(359行受影响).接下来尝试从#TempTable中选择数据时.
Select * From #TempTable;
Run Code Online (Sandbox Code Playgroud)
它回报我:
Msg 208, Level 16, State 0, Line 2
Invalid object name '#TempTable'.
Run Code Online (Sandbox Code Playgroud)
怀疑它只在'选择'部分工作.插入不起作用.如何解决?
我正在寻找一种很好的方法来记录我的SQL Server 2005数据库中特定表集上发生的更改.我认为最好的方法是通过触发器来执行更新和删除操作.无论如何都要抓住正在运行的实际语句?一旦我有了声明,我就可以轻松地将其记录到其他地方(其他数据库表).但是,我还没有找到一种简单的方法(如果可能的话)来获取正在运行的SQL语句.