제 데이터 베이서 컬럼명이 no1 ~ 100 까지 있습니다.
특정 루틴방식으로 자동으로 insert 되도록 하려고 했는데.
@data 는 1 ~ 100 까지 자동 증가 시킬꺼구요,
set @data2='no'+convert(varchar(10),@data )
insert into Probability([@data])
이런식으로 쿼리를 짰는데. insert into Probability([@data]) 여기서 에러가 나네요,, ㅠ.ㅠ
메시지 207, 수준 16, 상태 1, 줄 7
열 이름 '@data'이(가) 잘못되었습니다.
라는 메시지도, ㅠ,ㅠ
어떤게 문제일까요??
Comment 5
-
건우아빠
2013.10.18 16:52
-
군고구마
2013.10.18 17:05
declare @data varchar(30)declare @data2 varchar(30)set @data = '아무거나'set @data2='no'+convert(varchar(10),@data )insert into Probability values (@data) -
군고구마
2013.10.18 17:07
이 방법은 단순히 위에 방법을 실행 가능하게 만든것입니다.
건우아빠님의 답변이 가장 최적입니다.
-
한인
2013.10.18 18:36
set @data2='insert into Probability(no'+ convert(varchar(10),@data) +')SELECT COUNT(ORDERS) FROM (SELECT no1,no2,no3,no4,no5,no6 FROM default_data WITH(NOLOCK))P UNPIVOT (ORDERS FOR COUNTS IN (no1,no2,no3,no4,no5,no6))AS UNP WHERE ORDERS ='+ convert(varchar(2),@data)exec @data2건우아빠님의 조언대로이것처럼 작성했는데요,메시지 203, 수준 16, 상태 2, 줄 8이름 'insert into Probability(no1)SELECT COUNT(ORDERS) FROM (SELECT no1,no2,no3,no4,no5,no6 FROM default_data WITH(NOLOCK))P UNPIVOT (ORDERS FOR COUNTS IN (no1,no2,no3,no4,no5,no6))AS UNP WHERE ORDERS =1'은(는) 올바른 식별자가 아닙니다.이런 에러메시지가 나오네요,,쿼리만 따로 뽑으면 실행은 되는데.. -
건우아빠
2013.10.19 04:33
exec(@data2)
insert 문까지 동적으로 만드신다음
exec(@인서트문) 하세요