Dies ist keine Fehlermeldung über Trunkierung. Stattdessen scheint die Fehlermeldung selbst (von SSMS) abgeschnitten zu sein. Irgendeine Idee, was es mir hier sagen wollte? Gibt es eine Möglichkeit, die vollständige Fehlermeldung wiederherzustellen?SQL Server-Fehlermeldung abgeschnitten
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...
Ich benutze SSMS 2016, verbunden mit einem SQL 2000 Server. Für den Kontext - Ich versuchte, eine generische Version eines meiner aktuellen Skripte zu erstellen (funktioniert gut gegen Produktionsdaten), mit temporären Tabellen und Beispieldaten, um als Referenz zu speichern, falls ich etwas Ähnliches in der Zukunft brauchen sollte.
Dies war der Code für den Fehler verantwortlich:
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
ich den ursprünglichen Code auf die Frage hinzugefügt haben. Wenn ich mit 'PRINT' anstelle von' EXEC' laufe, zeigt es genau das, was ich im Nachrichtenfenster haben möchte. Ich kann sogar dieses Ergebnis kopieren und es wieder in den Editor einfügen und es wird einfach gut ausgeführt ... – CactusCake
Hinweis - sys.messages ist kein gültiges Objekt auf meinem (alten) Server. Allerdings 'Select * von master.dbo.sysmessages, wo Fehler = 203 und mslangand = 1033' funktioniert. Vielen Dank! – CactusCake
Cool, dass Sie es auf Ihrem System gefunden haben. Habe vergessen, dass du 2000 verwendest. BTW, kannst du irgendwann mal upgraden? Seit fast einem Jahrzehnt steht das Jahr 2000 nicht mehr zur Verfügung. –