我有两张桌子
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 不包含 t1 的 cid 那么新记录应该插入 t2 并且 t1.cid, t1.isnews 应该插入t2..
并且完整的表应该在单个查询中完成......我已经完成了更新部分但无法进行插入部分..
更新查询:
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