在SQL服务器中是否可以这样?
DECLARE @SQL int
SET @SQL = (CREATE VIEW AS SELECT *
FROM .....
JOIN.....)
EXEC @SQL
SELECT * FROM
@SQL
LEFT JOIN.....
ON....
我想加入一个视图的结果。
然后实际选择诸如
之类的变量join ..... on @SQL.No = ......
答案 0 :(得分:1)
您的代码没有意义。为什么要使用动态SQL创建视图?您只需创建一个视图:
CREATE VIEW my_view AS
SELECT *
FROM ..... JOIN
.....;
然后,您可以在查询中使用该视图:
select . . .
from my_view join
. . .
不需要动态SQL。
如果你想要一个"临时视图"对于查询,您可以使用CTE或子查询。
答案 1 :(得分:0)
试试这个:
DECLARE @SQL nvarchar(max) ,
@viewName nvarchar(50) = 'MyView'
SET @SQL = ('CREATE VIEW ' +@viewName +'AS SELECT *
FROM .....
JOIN.....')
EXEC sp_executeSQL @SQL
SET @SQL = ('
SELECT * FROM ' + @viewName +'
LEFT JOIN.....
ON.... ')
EXEC sp_executeSQL @sql