SQL SERVER:TSQL的问题,用于检查数据库上的模式是否存在

时间:2013-09-17 14:24:49

标签: sql sql-server sql-server-2008 tsql

在SQL SERVER上:

我在使用命令创建的数据库上有一个模式:

CREATE SCHEMA my-schema AUTHORIZATION [G_USER]

当我尝试使用以下语句搜索模式时,我没有得到任何结果。

SELECT * FROM sys.schemas WHERE name=N'my-schema'

然而,当我尝试 SELECT * FROM sys.schemas 我得到了一大堆其他模式,但没有我在数据库中创建的my-schema。

我做错了吗?任何帮助将不胜感激。
谢谢!

1 个答案:

答案 0 :(得分:1)

这是我的语法(来自个人代码 - snipplets保险库)

if not exists(select 1 from information_schema.schemata where schema_name='my-schema')
BEGIN
    print 'Creating the schema : [my-schema]' 
    EXEC ('CREATE SCHEMA [my-schema] AUTHORIZATION dbo;')
END


if exists(select 1 from information_schema.schemata where schema_name='my-schema')
BEGIN
print 'Schema Exists : [my-schema]' 
END

(以下为我个人代码,以防万一)

if not exists(select 1 from information_schema.schemata where schema_name='LookupSchema')
BEGIN
    EXEC ('CREATE SCHEMA LookupSchema AUTHORIZATION dbo;')
END

GO