Sql 检查用户的默认架构中是否存在表?
在SQL server中,如何检查特定用户的默认架构中是否存在表?用您试图查找的实际表名替换表后,请尝试以下操作: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
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子句中使用表名称。问题必须证明所做的工作非常简单。