检查 sql 服务器上的特定数据库中是否存在架构
Check if schema exists in a specific database on sql server
我知道你能做到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
结构中使用它,你最终会得到一些丑陋的 sp_executesql
语法。那么检查特定数据库中是否存在模式的最佳方法是什么?
我会简单地做:
IF NOT EXISTS (SELECT * FROM DBName.sys.schemas WHERE name = 'log')
BEGIN
-- some code
END
刚刚在我的环境中试过,它有效。
我知道你能做到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
结构中使用它,你最终会得到一些丑陋的 sp_executesql
语法。那么检查特定数据库中是否存在模式的最佳方法是什么?
我会简单地做:
IF NOT EXISTS (SELECT * FROM DBName.sys.schemas WHERE name = 'log')
BEGIN
-- some code
END
刚刚在我的环境中试过,它有效。