Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 检查用户的默认架构中是否存在表?_Sql_Sql Server_Sql Server 2008_Sql Server 2005 - Fatal编程技术网

Sql 检查用户的默认架构中是否存在表?

Sql 检查用户的默认架构中是否存在表?,sql,sql-server,sql-server-2008,sql-server-2005,Sql,Sql Server,Sql Server 2008,Sql Server 2005,在SQL server中,如何检查特定用户的默认架构中是否存在表?用您试图查找的实际表名替换表后,请尝试以下操作: IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = SCHEMA_NAME() AND TABLE_NAME = 'TheTable')) BEGIN --Do Stuff

在SQL server中,如何检查特定用户的默认架构中是否存在表?

用您试图查找的实际表名替换表后,请尝试以下操作:

IF (EXISTS (SELECT * 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_SCHEMA = SCHEMA_NAME() 
                 AND  TABLE_NAME = 'TheTable'))
BEGIN
    --Do Stuff here
END

SCHEMA_NAME将返回调用方的默认架构的名称。[]

是否有办法同时检查其他用户?是的。此SQL将为您提供所有SQL用户类型='S'及其默认架构名称。从sys.database\u principals中选择name作为'UserName',default\u schema\u name作为'DefaultSchemaName',其中type='S',default\u schema\u name不为NULL。然后,您应该能够在包含信息的联接中使用此选项。在联接条件中使用架构名称,在WHERE子句中使用表名称。问题必须证明所做的工作非常简单。