如何使用代表视图名称的参数,我可以将其传递给SQL中的CREATE VIEW语句?
DECLARE @ViewName VARCHAR(40) = 'V_fooo'
CREATE VIEW @ViewName
AS
SELECT * from foods
由于语法错误而无效。我怎样才能做到这一点? 感谢。
答案 0 :(得分:3)
您必须使用DYNAMIC SQL执行此操作。
DECLARE @ViewName VARCHAR(40) = 'V_fooo'
DECLARE @SQL VARCHAR(MAX) =
'CREATE VIEW ' + @ViewName +'
AS
SELECT * from foods'
EXEC (@SQL)
答案 1 :(得分:0)
DECLARE @Sql NVARCHAR(MAX);
DECLARE @View_Name NVARCHAR(128);
SET @View_Name = 'V_fooo'
SET @Sql = N'CREATE VIEW ' + QUOTENAME(@View_Name) +
N' AS SELECT * FROM dbo.foo_table'
EXECUTE sp_executesql @Sql