当我在SQL Server 2008中使用此语句时:
--INSERT INTO #tmp_file EXEC ('restore_database_proc N''' + @database_bak_path + '''')
INSERT INTO #tmp_file EXEC ('RESTORE FILELISTONLY FROM DISK = N''' + @database_bak_path + '''')
set @database_mdf_oldname = (select LogicalName from #tmp_file where Type = 'D')
set @database_log_oldname = (select LogicalName from #tmp_file where Type = 'L')
当我调试过程时,变量@database_mdf_oldname
和@database_log_oldname
没有值,所以我想检查临时表是否有值以及为什么结果没有给出变量?
答案 0 :(得分:0)
你可以添加一个select语句select * from #tmp_file
,在sql server上可以显示临时表结果,如下所示:
INSERT INTO #tmp_file EXEC ('RESTORE FILELISTONLY FROM DISK = N''' + @database_bak_path + '''')
select * from #tmp_file--this can be diaplay on debugging result
set @database_mdf_oldname = (select LogicalName from #tmp_file where Type = 'D')
set @database_log_oldname = (select LogicalName from #tmp_file where Type = 'L')