我有以下 SQL
DECLARE @ColIdx INT;
DECLARE @FieldPrefix VARCHAR(50) = N'DX';
DECLARE @PivotColumnHeaders NVARCHAR(MAX);
SELECT @MaxColumnCount = 8;
WHILE @ColIdx < @MaxColumnCount
BEGIN
SELECT @PivotColumnHeaders =
COALESCE(@PivotColumnHeaders + N',
[' + @FieldPrefix + CAST(@ColIdx AS VARCHAR) + N'] AS NVARCHAR(100)',
N'[' + @FieldPrefix + CAST(@ColIdx AS VARCHAR) + N'] AS NVARCHAR(100)')
SET @ColIdx += 1
END;
PRINT @@PivotColumnHeaders;
我希望输出是
[DX1] AS NVARCHAR(100), [DX2] AS NVARCHAR(100), ..., [DX8] AS NVARCHAR(100)
这是一个更大的 SP 的一部分,它将使用动态 SQL 将这些列插入到数据库中。当然,我已经很久没有使用 SQL 了,但这是基本的,我不知道为什么@PivotColumnHeader
会出现空白,或者确实为什么PRINT
不起作用(可能是因为变量是空白的!-但是为什么?)-我尝试了正常的声音
RAISERROR (@PivotColumnHeaders, 10, 1) WITH NOWAIT;
代替,PRINT
但这也没有返回任何内容。我究竟做错了什么?
谢谢你的时间。