Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将动态表另存为视图/表_Sql_Sql Server_Dynamic - Fatal编程技术网

Sql 将动态表另存为视图/表

Sql 将动态表另存为视图/表,sql,sql-server,dynamic,Sql,Sql Server,Dynamic,我只是在这里写了一个脚本,但我不知道如何将它保存为视图或表。它是从行动态创建列 DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX); SET @columns = N''; SELECT @columns += N', p.' + QUOTENAME([Period]) FROM (SELECT p.Period FROM dbo.[refv_IRR3_Op_Rev] AS p INNER JOIN [dbo].[refv_IRR3_

我只是在这里写了一个脚本,但我不知道如何将它保存为视图或表。它是从行动态创建列

 DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX);
SET @columns = N'';
SELECT  @columns += N', p.' + QUOTENAME([Period])
  FROM (SELECT p.Period FROM dbo.[refv_IRR3_Op_Rev] AS p
  INNER JOIN [dbo].[refv_IRR3_Op_Rev] AS o
  ON p.RMDF = o.RMDF 
  GROUP BY P.Period) AS x;
SET @sql = N'
SELECT [Region]
      ,[LAU]
      ,[RMDF]
      , ' + STUFF(@columns, 1, 2, '') + '
FROM
(
  SELECT [Region]
      ,[LAU]
      ,[RMDF]
      ,[Period]
      ,[Net_Operating_Cashflow]
  FROM [FTTx_Build].[dbo].[refv_IRR3_Op_Rev]

) AS j
PIVOT
(
  SUM([Net_Operating_Cashflow]) FOR Period IN ('
  + STUFF(REPLACE(@columns, ', p.[', ',['), 1, 1, '')
  + ')
) AS p;';
PRINT @sql;
EXEC sp_executesql @sql;

如何将其保存为视图或表?

简短回答:您不能。但是,您可以从代码中构建存储过程,并在需要这些结果时调用它。

无法完成。一个视图必须有一个设置数量的列,而这不是。一个表还必须有一组列,而这并没有。您唯一的选择是使用存储过程。谢谢,让我试试。