我有以下内容:
DECLARE @SchemaName NVARCHAR(MAX)
SET @SchemaName = 'MySchema'
DROP SCHEMA MySchema
我该如何使用变量?
我试过了DROP SCHEMA OBJECT_ID(@SchemaName)
也许DELETE FROM SYS.SCHEMAS WHERE NAME = @SchemaName
等于DROP
?
答案 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)