我正在尝试使用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)
答案 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