T-SQL从UDF获取视图的库名称

时间:2018-06-21 13:58:38

标签: sql-server tsql

我想创建一个包含很多UNION和相当多列的视图。为简便起见,我想一次定义列列表,然后在视图的T-SQL中多次重复使用它。作为一种观点,我无法声明局部变量。

所以我有一个UDF fnGetColumnList ,不带任何参数返回包含字段列表的nvarchar(max),即'[field1]为[Field 1],[field2]为[Field 2] ' 等等。很好。

我不知道的是,是否可以在创建视图时将其用作列列表。例如,这行不通。

CREATE VIEW [dbo].[myView]
AS

SELECT [dbo].[fnGetColumnList] from [dbo].[table]

GO

这有可能吗?

1 个答案:

答案 0 :(得分:0)

  

我不知道的是是否可以将其用作列   创建视图时列出。

从字面上看,是的,这是可能的。您将必须使用动态SQL创建视图。

您能否拥有此 IN 的视图?不能。您不能使用动态SQL IN 视图的代码。但是您可以使用它来创建视图:

DECLARE @sql nvarchar(max);
SET @sql='
 CREATE VIEW dbo.MyViewName
 AS 
 SELECT ' + dbo.MyFunction + '
 ...
';
EXECUTE (@sql);