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

SQL Server 2000: returned string truncated after 256th symbol

我有这样的查询:

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 上 returns 生成查询的全文,但在 SQL Server 2000 上的查询分析器中,结果字符串在第 256 个符号后被截断。有没有办法扩大这个结果字符串?

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

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

SELECT @sql = ' <etc>

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

PRINT len(@sql)

查看实际返回了多少个字符。 (或者可能 datalength,对于字节数,因为它是 nvarchar。)

自从我开始使用 SQL 2000 以来已经有很长一段时间了,但如果我没记错的话,它与 SSMS 2005 及更高版本中的功能具有相同或非常相似的功能。在这些系统中,进入工具菜单,select 选项,然后 "drill down" 查询结果/SQL 服务器/结果到文本。此面板上的控件之一是 "Maximum number of characters displayed in each column",带有默认为 [I forget] 的微调器,并允许您将其设置为 8192(我在几年前将其设置并保留)。我有理由相信,查询分析器中也有类似但不完全相同的设置。

只是想冒险并声明您的设置可能设置为停止@256 个字符?