25
社区成员
发帖
与我相关
我的任务
分享
就是要求要用SQL写出来
数据库A 有表 a ,表a 有字段 id 均为 3位数字 有重复 如001 002.。。。。
再有数据库若干 名字是 w+上述表a中字段id 如 w001 w002 w099,这些数据库结构都一样,每个都有表b,表b有字段gender,取值0或者1,int。
要求,修改数据库A中表a字段id结尾的所有 数据库(就是w001 w002)中的表b字段gender ,如果是0就改成1,如果是1就改成0
谢谢,请不吝赐教。
UPDATE 表A SET gender = '0'
WHERE gender=1 and id like '%w001';
UPDATE 表A SET gender = '1'
WHERE gender=0 and id like '%w002';
是这个意思吗,你可以先在本地创建一个测试库看看是不是你需要的效果
DECLARE @id VARCHAR(3)
DECLARE db_cursor CURSOR FOR
SELECT id FROM A.dbo.a
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @id
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @sql NVARCHAR(MAX)
SET @sql = 'UPDATE w' + @id + '.dbo.b SET gender = CASE WHEN gender = 0 THEN 1 ELSE 0 END'
EXEC sp_executesql @sql
FETCH NEXT FROM db_cursor INTO @id
END
CLOSE db_cursor
DEALLOCATE db_cursor