如何通过从参数传递名称来创建视图? (如:CREATE VIEW @ViewName)

时间:2014-02-18 13:05:31

标签: sql view parameters

如何使用代表视图名称的参数,我可以将其传递给SQL中的CREATE VIEW语句?

DECLARE @ViewName VARCHAR(40) = 'V_fooo'
CREATE VIEW @ViewName 
AS
SELECT  * from foods

由于语法错误而无效。我怎样才能做到这一点? 感谢。

2 个答案:

答案 0 :(得分:3)

您必须使用DYNAMIC SQL执行此操作。

DECLARE @ViewName VARCHAR(40) = 'V_fooo'
DECLARE @SQL VARCHAR(MAX) = 
'CREATE VIEW ' + @ViewName +'
AS
SELECT  * from foods'

EXEC (@SQL)

SQL FIDDLE DEMO

答案 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