Sql server 如何在删除前按架构搜索表

Sql server 如何在删除前按架构搜索表,sql-server,schema,Sql Server,Schema,在删除某个表之前,我试图检查该表是否存在于特定的模式中 例如: IF EXISTS(SELECT 1 FROM sys.tables WHERE name = 'table1') BEGIN DROP TABLE schema1.table1 END 即使DROP指定了架构,我如何更改EXISTS检查以同时包含schema1?将连接到系统架构: IF EXISTS (SELECT 1 FROM sys.tables t JOIN sys

在删除某个表之前,我试图检查该表是否存在于特定的模式中

例如:

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

即使DROP指定了架构,我如何更改
EXISTS
检查以同时包含schema1?

连接到
系统架构

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...

就我个人而言,我更喜欢使用

IF (OBJECT_ID('Data.Capture') IS NOT NULL)
BEGIN
    PRINT 'Exists'
END
因为这不仅允许我检查表,还允许我检查任何其他对象,同时保留对象存在性检查的标准实践