检查sql server上特定数据库中是否存在模式

问题描述 投票:0回答:1

我知道你可以做this

IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'log')
BEGIN
    -- some code 
END

但是如何检查特定数据库中是否存在模式?数据库名称以@dbname的形式提供。

第一次尝试

一个简单的解决方法

exec ('use db_name; select schema_id(''log'')')

但是如果你想在ifconstruction中使用它,你最终会得到一些丑陋的sp_executesql语法。那么检查特定数据库中是否存在模式的最佳方法是什么?

sql-server database-schema
1个回答
3
投票

我会这样做:

IF NOT EXISTS (SELECT * FROM DBName.sys.schemas WHERE name = 'log')
BEGIN
    -- some code 
END

只是在我的环境中试过它并且它有效。

© www.soinside.com 2019 - 2024. All rights reserved.