我有这样的查询:
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个符号后被截断。有没有办法放大这个结果字符串?
答案 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)