表格名称不存在

时间:2018-09-26 14:35:17

标签: sql-server tsql

在SQL Server中是否可以通过这种方式检查表是否存在?如果不存在,它将运行catch

             declare @SQL  varchar(4444)

             select @SQL = '
             begin try
                select * from ServerName.DBName.dbo.TableNAme
             end try
             begin catch
                select 1
             end catch'

             exec (@SQL)

我不想使用描述为here的解决方案,因为我想使用与上述表格完全相同的结构。

原因:我将循环运行几个动态查询,在ServerName,DbName和TableName上方将作为参数传递。

1 个答案:

答案 0 :(得分:5)

如果您动态地进行操作,它应该可以工作。如果您不动态进行操作,则丢失的表将在解析时被捕获,并且不会触发CATCH。

编辑:我的意思是这样:

         declare @SQL  varchar(4444)

         select @SQL = 'select * from ServerName.DBName.dbo.TableNAme'
         begin try
            exec (@SQL)
         end try
         begin catch
            select 1
         end catch