从查询中获取列名,出现单引号

时间:2019-05-16 09:48:59

标签: sql sql-server

我正在尝试使用sys.dm_exec_describe_first_result_set示例来获取列名,这在简单查询上非常有效,但是当我使用单引号进行查询时,它将无法正常工作。

有人会建议解决这个问题吗?

SELECT name 
FROM 
sys.dm_exec_describe_first_result_set
('Select [Current Status] = CASE  WHEN Matter.ArchiveStatus = 0 THEN 'Live' WHEN Matter.ArchiveStatus IS NULL THEN 'Live' WHEN Matter.ArchiveStatus = 1 THEN 'Pending Deletion' WHEN Matter.ArchiveStatus = 2 THEN 'Archived' ELSE 'Unknown' END FROM Matter', NULL, 0) 

2 个答案:

答案 0 :(得分:2)

您可以仅使用另一个单引号来转义原始单引号。像这样:

('Select [Current Status] = CASE  WHEN Matter.ArchiveStatus = 0 THEN ''Live''...

答案 1 :(得分:0)

如何创建存储过程以正常的参数化方式使用它? 例如:

create procedure [dbo].[GetResultSetColumnNames]
    @query nvarchar(4000)
as 
begin
    set nocount on;
    SELECT name 
    FROM 
        sys.dm_exec_describe_first_result_set (@query, NULL, 0)
end