데이터테이블 변수할당후 동적으로 업데이트를하려고하는데 오류가납니다.ㅠ 0 1 309

by 2ster [2020.02.28 16:43:34]


테이블변수를 하나 생성해서

테이블_1에서 select로 1개 컬럼을 추출하였습니다.

이 임시테이블을 기반으로

데이터를 update하려고하는데 이게 가능한가요??

 

Declare @sdTable table (
reVal nvarchar(100) NOT NULL)

INSERT INTO @sdTable
select ID from sdjo
where ID IN ('KBS', 'JYP')

UPDATE sdjo SET TITLE='테스트' where ID = @sdTable

자꾸 스칼라변수를 선언하라고나오는데 열심히 구글검색중인데 못찾고있어서

질문드립니다..

by 마농 [2020.03.02 08:23:28]
-- MSSQL 의 테이블 변수이니 테이블처럼 사용하시면 됩니다. --
-- 1. IN 서브쿼리
UPDATE sdjo
   SET title = '테스트'
 WHERE id IN (SELECT reVal FROM @sdTable)
;
-- 2. 조인 Update
UPDATE a
   SET a.title = '테스트'
  FROM sdjo a
 INNER JOIN @sdTable b
    ON a.id = b.reVal
;
-- 3. 그런데. 굳이 변수 사용할 필요가 없어 보이는데요?
UPDATE sdjo
   SET title = '테스트'
 WHERE id IN ('KBS', 'JYP')
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입