如何在DROP之前按模式搜索表

时间:2018-07-04 15:01:34

标签: sql-server schema

我正在尝试在删除特定表之前检查该表是否存在。

例如:

IF EXISTS(SELECT 1 FROM sys.tables WHERE name = 'table1')
BEGIN
   DROP TABLE schema1.table1
END

即使DROP指定了架构,如何更改EXISTS检查也包括schema1?

2 个答案:

答案 0 :(得分:0)

JOINsys.schemas

IF EXISTS (SELECT 1
           FROM sys.tables t
               JOIN sys.schemas s ON t.schema_id = s.schema_id
           WHERE t.[name] = N'YourTable'
             AND s.[name] = N'YourSchema') BEGIN...

答案 1 :(得分:0)

我个人更喜欢使用

IF (OBJECT_ID('Data.Capture') IS NOT NULL)
BEGIN
    PRINT 'Exists'
END

这不仅使我不仅可以检查表,还可以检查其他任何对象,同时保留了标准的对象存在检查实践