我知道你可以做this
IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'log')
BEGIN
-- some code
END
但是如何检查特定数据库中是否存在模式?数据库名称以@dbname
的形式提供。
第一次尝试
一个简单的解决方法
exec ('use db_name; select schema_id(''log'')')
但是如果你想在if
construction中使用它,你最终会得到一些丑陋的sp_executesql
语法。那么检查特定数据库中是否存在模式的最佳方法是什么?
我会这样做:
IF NOT EXISTS (SELECT * FROM DBName.sys.schemas WHERE name = 'log')
BEGIN
-- some code
END
只是在我的环境中试过它并且它有效。