2015-11-17 46 views
0

後返回的字符串截斷,我有這樣的查詢:的SQL Server 2000:1/256符號

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

我認爲你可以用SQL 2008 SSMS –

+0

是的,是我的錯連接到SQL 2000。你是對的,它是SQL 2000.修正了描述。 –

回答

2

假設您指的是在結果窗口中顯示的返回文本 - 輸出發送到TEXT而不是GRID,那麼這可能是查詢分析器的一個功能。

首先檢查,修改yourquery到

SELECT @sql = ' <etc> 

沒有top 1,這應該放棄一個返回的字符串到變量。跟着

PRINT len(@sql) 

查看實際返回的字符數。 (或者datalength,對於字節數,因爲它是nvarchar。)

從我開始使用SQL 2000開始已經很長時間了,但是如果我的內存直接播放,它具有相同或非常相似的特性到SSMS 2005和以後的內容。在這些系統中,進入工具菜單,選擇選項,然後「向下鑽取」查詢結果/ SQL Server /結果到文本。此面板上的一個控件是「每列中顯示的最大字符數」,其中一個微調控件默認爲[我忘記],並且可以將其設置爲8192(我在多年前將其設置並保留) 。我有理由相信,查詢分析器中也有類似的,如果不相同的設置。

2

剛要出去的肢體和狀態,也許你的設置被設置爲停止@ 256個字符?

enter image description here