SQL Server 2000:返回在第256个符号后截断的字符串

时间:2015-11-17 18:34:42

标签: sql-server sql-server-2008 sql-server-2000

我有这样的查询:

declare @tbl varchar(1024)
declare @clmn varchar(1024) 
declare @sql nvarchar(1024)

set @tbl = 'table1'
set @clmn = 'column1'

select top 1
'select (case when exists (select column_name from ' + name + '.INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = ''' + @tbl + ''') then 1 else 0 end),
(case when exists (select column_name from ' + name + '.INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = ''' + @tbl + ''' and COLUMN_NAME=''' + @clmn + ''') then 1 else 0 end)'
From master.dbo.sysdatabases

在SQL Server 2008上,它返回生成的查询的完整文本,但在SQL Server 2000上的查询分析器中,结果字符串在第256个符号后被截断。有没有办法放大这个结果字符串?

2 个答案:

答案 0 :(得分:2)

假设您指的是结果窗口中显示的返回文本 - 输出发送到TEXT而不是GRID,那么这可能是查询分析器的一项功能。

首先检查,将你的查询修改为

SELECT @sql = ' <etc>

如果没有top 1,这应该将一个返回的字符串放入变量中。按照

进行操作
PRINT len(@sql)

查看实际返回的字符数。 (或者可能datalength,字节数,因为它是nvarchar。)

自从我使用SQL 2000以来已经很长时间了,但是如果我的记忆是直接播放的话,它与SSMS 2005及以上版本具有相同或非常相似的功能。在这些系统中,进入工具菜单,选择选项,然后&#34;向下钻取&#34;查询结果/ SQL Server /结果到文本。这个面板上的一个控件是&#34;每列中显示的最大字符数&#34;,一个微调器默认为[我忘了]并允许你将它设置为8192(我将它设置为和多年前离开了)。我有理由相信,查询分析器中的类似设置也是如此。

答案 1 :(得分:2)

刚出门,说明你的设置可能会停止@ 256个字符?

enter image description here