這不是關於截斷的錯誤消息。相反,錯誤消息本身(來自SSMS)似乎已被截斷。有什麼想法在這裏告訴我什麼?有沒有辦法恢復完整的錯誤信息?截斷的SQL Server錯誤消息
Msg 203, Level 16, State 2, Line 80
The name 'SELECT
SUM(CASE WHEN #actual_types.typ = 'AA' THEN #actual_types.qty ELSE 0 END) AS 'AA_Qty',
SUM(CASE WHEN #actual_types.typ = 'AB' THEN #actual_types.qty ELSE 0 END) AS 'AB_Qty',
SUM(CASE WHEN #actual_types.typ = 'AC' THEN #actual_types.qty ELSE 0 END) AS 'AC_Qty',
SUM(CASE WHEN #actual_types.typ = 'BA' THEN #actual_types.qty ELSE 0 END) AS 'BA_Qty',
SUM(CASE WHEN #actual_types.typ...
我正在使用SSMS 2016連接到SQL 2000服務器。對於上下文 - 我試圖使用臨時表和示例數據創建一個當前腳本的更通用版本(適用於生產數據),以備將來保存爲參考。
這是負責該錯誤代碼:在SQL Server
CREATE TABLE #possible_types
(typ varchar(2))
CREATE TABLE #actual_types
(typ varchar(2),
dt smalldatetime,
qty int)
INSERT #possible_types
SELECT 'AA'
UNION SELECT 'AB'
UNION SELECT 'AC'
UNION SELECT 'BA'
UNION SELECT 'BB'
UNION SELECT 'BC'
INSERT #actual_types
SELECT 'AA', '2015-01-01', 123
UNION SELECT 'AA', '2016-01-01', 321
UNION SELECT 'AA', '2017-01-01', 222
UNION SELECT 'BA', '2016-01-01', 777
UNION SELECT 'BC', '2017-01-01', 456
DECLARE @qry varchar(8000)
SELECT @qry = 'SELECT' + CHAR(13)
SELECT @qry = @qry + s.sql_gen
FROM
(SELECT DISTINCT 'SUM(CASE WHEN #actual_types.typ = '''+ typ + ''' THEN #actual_types.qty ELSE 0 END) AS ''' + typ + '_Qty'',' + char(13) AS [sql_gen]
FROM #possible_types) s
SELECT @qry = LEFT(@qry, LEN(@qry) - 2) -- gets rid of last comma and carriage return
SELECT @qry = @qry + '
FROM #actual_types
WHERE #actual_types.dt >= ''2017-01-01''
'
--PRINT @qry
EXEC @qry;
DROP TABLE #possible_types
DROP TABLE #actual_types
我已經添加了原代碼的問題。如果我使用'PRINT'而不是'EXEC'運行,它會在消息窗口中顯示我想要的內容。我甚至可以複製該結果並將其粘貼回編輯器,它會執行得很好... – CactusCake
注 - sys.messages不是我的(古代)服務器上的有效對象。但是'select * from master.dbo.sysmessages where error = 203 and msglangid = 1033' does not work。謝謝! – CactusCake
很高興你在你的系統上找到它。忘了你使用的是2000.順便說一下,你有可能升級的任何機會? 2000年已經退出近十年的支持。 –