У меня есть два стола
create table t1(cid int, isnews int)
create table t2(nid int,cid int, isnews int)
ситуации таковы:
если t2 содержит t2.cid = t1.cid, то t2.isnews = t1.news и
если t2 не содержит cid из t1, то в t2 должна быть вставлена новая запись, а в t2 должны быть вставлены t1.cid, t1.isnews
и полная таблица должна быть сделана в одном запросе ... Я выполнил обновление, но не смог выполнить вставку.
запрос на обновление:
UPDATE t22
SET t22.isnews = t11.isnews
FROM t2 AS t22
JOIN t1 AS t11
ON t11.cid= t22.cid
Я подготовил курсор ниже для вставки ... это хорошо? :
DECLARE @clntid INT
DECLARE @clntnewsltr INT
DECLARE clientnews CURSOR FOR
SELECT clientid,newsLetter
FROM clients
WHERE clientid NOT IN (SELECT clientid FROM clientprivacy)
OPEN clientnews
FETCH NEXT FROM clientnews INTO @clntid,@clntnewsltr
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO clientprivacy (clientId,tdNewsLetters) VALUES(@clntid, @clntnewsltr)
FETCH NEXT FROM clientnews INTO @clntid,@clntnewsltr
END
CLOSE clientnews
DEALLOCATE clientnews