약 잘라 내기 오류 메시지가 아닙니다. 오히려 오류 메시지 자체 (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...
SQL 2000 서버에 연결된 SSMS 2016을 사용하고 있습니다. 문맥을 위해 - 나는 임시 테이블과 샘플 데이터를 사용하여 현재의 스크립트 중 더 일반적인 버전을 만들어 내고 싶었습니다 (프로덕션 데이터와 잘 작동합니다). 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
합니다. 'EXEC' 대신에'PRINT' 명령을 사용하면 메시지 창에서 원하는 것을 정확하게 보여줍니다. 그 결과를 복사해서 에디터에 다시 붙이면 괜찮아 질 것입니다. – CactusCake
주 - sys.messages는 고대 서버에서 유효한 객체가 아닙니다. 그러나 'select * from master.dbo.sysmessages where error = 203 and msglangid = 1033'이 작동합니다. 감사! – CactusCake
시스템에서 발견되어 기쁩니다. 당신이 2000 년을 사용하고 있다는 사실을 잊어 버렸습니다. 언젠가는 언제라도 업그레이드 할 수 있습니까? 2000 년은 이제 10 년 가까이지지를받지 못했습니다. –