具有动态列数的T-SQL传回表

时间:2016-10-26 01:49:34

标签: sql-server tsql dynamic

我在SQL Server 2014中有一个存储过程,我希望传回一个包含数据的表,其中列数可能会因某些条件而异。

我可以像这样创建一个表并将数据插入其中但它始终是静态的:

CREATE TABLE Persons
(
    PersonID int,
    LastName varchar(255),
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
);

如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以创建动态查询:

    DECLARE @cols AS NVARCHAR(MAX),
    @query  AS NVARCHAR(MAX)

    set @query = 'CREATE TABLE Persons
    (
    @cols
    );'

    execute(@query)