使用变量名删除模式

时间:2015-11-05 09:10:13

标签: sql-server tsql

我有以下内容:

DECLARE @SchemaName NVARCHAR(MAX)
SET @SchemaName = 'MySchema'

DROP SCHEMA MySchema

我该如何使用变量? 我试过了DROP SCHEMA OBJECT_ID(@SchemaName)

也许DELETE FROM SYS.SCHEMAS WHERE NAME = @SchemaName等于DROP

2 个答案:

答案 0 :(得分:3)

尝试使用Dynamic sql

DECLARE @SchemaName NVARCHAR(MAX)
SET @SchemaName = 'test'

DECLARE @sql NVARCHAR(128)= ''

SET @sql = 'DROP SCHEMA ' + quotename(@SchemaName) + ''

--print @sql
EXEC (@sql) 

此外,我认为您无法从SYS.SCHEMAS视图

中删除记录

答案 1 :(得分:3)

尝试这样的事情:

DECLARE @sql nvarchar(max), @SchemaName NVARCHAR(MAX)
SET @SchemaName = 'MySchema'

set @sql = 'DROP SCHEMA ' + quotename(@SchemaName)

---print @sql
exec sp_executesql(@sql)