SQL Server 2008企业版。
我尝试从表变量返回结果时遇到一些奇怪的行为,并将它们连成一个字符串。
declare @SQLString nvarchar(max) ='';
declare @List table (ID smallint, Period smallint, Name nvarchar(4000), Value nvarchar(4000) );
insert into @List values(1, 0, 'Column1', 'Total Value');
insert into @List values(1, 0, 'Column2', 'Cost');
insert into @List values(1, 0, 'Column3/Column2', 'Qty');
insert into @List values(1, 0, 'Column4', 'Test');
select @SQLString = @SQLString + ',' + char(13) + char(9)
+ 'isnull('+Name + ',0) as [' + Value +']'
from @List order by Period, ID
目前,这只会将@List
的最终结果返回到@SQLString
。
如果我删除了order by
,则效果非常好。 IE浏览器。它将所有行返回到字符串中(例如,isnull(1,0),isnull(2,0)等)
为了其他目的,我已经完成了1000次。我错过了什么?
然而,它可以在我的本地计算机上运行(运行SQL Server 2008 Developer)