【问题标题】:SQL Server 2000: returned string truncated after 256th symbolSQL Server 2000:返回的字符串在第 256 个符号后被截断
【发布时间】:2016-02-19 06:28:32
【问题描述】:

我有一个这样的查询:

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 个符号后被截断。有没有办法放大这个结果字符串?

【问题讨论】:

  • 我认为您可以使用 Sql 2008 SSMS 连接到 SQL 2000
  • 是的,我的错。你是对的,它是 SQL 2000。固定描述。

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


【解决方案1】:

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

首先检查,修改你的查询

SELECT @sql = ' <etc>

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

PRINT len(@sql)

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多