Declare @test1 table
(
gubn varchar(1),
io_date varchar(10),
rmk varchar(100),
in_qty decimal(18,4),
out_qty decimal(18,4),
item_code varchar(20),
empno varchar(50) null,
cust_name varchar(100) null,
gubn_name varchar(50) null,
io_gubn varchar(2) null,
io_equip_name_detail varchar(100)
)
DECLARE @test2 TABLE(
gubn varchar(1),
io_date varchar(10),
rmk varchar(100),
in_qty decimal(18,4),
out_qty decimal(18,4),
item_code varchar(20),
empno varchar(50) null,
cust_name varchar(100) null,
gubn_name varchar(50) null,
io_gubn varchar(2) null
)
insert @test2 select '1','2013.12.20', '2', 1,2,'aaa','bbb', 'name', 'gybun','22'
INSERT INTO @test1
select gubn,
case gubn when '' then io_date else '1' end
, rmk, in_qty, out_qty, item_code,
empno, cust_name, gubn_name, io_gubn
from @test2
order by gubn,io_date desc, gubn_name, cust_name
select * from @test1
select * from @test2
-----------------------------------------------
mssql2000에서 백업하여 mssql2008R2에서 작업을 하는데
마지막 INSERT INTO 구문이 안되네요;;
case gubn when '' then io_date else '1' end 이 것을 case문을 쓰지않고
그냥 io_date로 바꾸니 mssql2000에서도 안됩니다.;;
초보라 조언 좀 부탁드려요 ㅠ
Comment 4
-
군고구마
2013.12.05 11:44
-
항해자™
2013.12.06 09:00
에러 구문이 어떻게 되나요??
Io_date가 정말 varchar 자료형 맞나요?? -
마니워니
2013.12.06 13:59
sql2008에서는 에러메시지가
'제공된 값의 개수나 열 이름이 테이블 정의와 일치하지 않습니다.'라고 나와서
군고구마님 말씀처럼 열에 개수가 맞지않아서 추가를 해서 수정했습니다.
그런데 생각을 해보니 sql2000에서는 무리없이 작동이 되더라구요.
gubn io_date rmk in_qty out_qty item_code empno cust_name gubn_name io_gubn io_equip_name_detail 1 1 2 1 2 aaa bbb name gybun 22 NULL gubn io_date rmk in_qty out_qty item_code empno cust_name gubn_name io_gubn 1 2013.12.20 2 1 2 aaa bbb name gybun 22 이런식으로 결과가 나왔네요;;
열갯수가 맞지 않는 io_equip_name_detail부분은 null로 처리되어 나오는 걸 보니
열개수가 맞지 않아도 무시되어 null처리 된것지 궁금해서 찾아봤는데 아직 모르겠습니다. ㅎㅎ;;;
-
군고구마
2013.12.08 21:00
아마도 열이 default값이 null로 지정되어 있거나 할수도 있습니다.
아니면 그러므로 null값이 자동으로 들어갔었는데 이번에 테이블을 새로 만들면서 그 default값을 빼먹었거나 해서 오류가 발생할 수도 있습니다. 테이블을 sp_help 테이블명 을 통해서 확인해 보시기 바랍니다.
보시면 위에 test1 과 test2의 테이블 열의 개수가 다릅니다.
io_equip_name_detail varchar(100) 부분이 없네요.
이게 지금 그대로 복사해서 여기 붙이신 거라면 그거 때문에 insert가 안되는 겁니다.
열에 개수가 안맞아요.