如何在过程调试时资源管理器临时表内容



当我在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没有值,所以我想检查临时表是否有值以及为什么结果没有给出变量?

您可以添加一个 select 语句select * from #tmp_file在 sql 服务器上,它可以像这样显示临时表结果:

    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')

相关内容

最新更新