作者drinks (阳光阿宅)
看板Database
标题[MSSQL]语法问题
时间Sun Jun 7 08:56:40 2009
小弟我想要批次更新table的资料,
语法是这样的:
update DB1.dbo.table1 set bodynumtext=('01,'+
(select a.class_name from BD2.dbo.table2 a where
a.class_code='01')) where bodynum='01';
把别的资料库的栏位名称 更新至我的资料库,
上面语法是可以正确执行的,
不过 因为需要 00-99 跟000-999 那麽多种,
因为太多资料了,
所以 我就写了
让sql跑回圈,
不过 以下指令 可以顺利执行,但是都是更新0笔资料
我在猜测 @c的值 是不是错了?(因为第一次写 不知如何把@c印出来)
我想要的 @c 的值是要 '00','01'.....到 '99'
烦请大大解惑,感谢!
declare @a int;
declare @b int;
--declare @c varchar;
declare @c varchar(2);
begin
Set @a = 0;
while(@a<=9) begin
Set @b = 0;
while(@b<=9) begin
-- Set @c = ''+@a+''+@b+'';
Set @c = CONVERT(VARCHAR, @a)+CONVERT(VARCHAR, @b);
update BD1.dbo.table1 set bodynumtext=(@c+','+
(select a.class_name from DB2.dbo.table2 a where
a.class_code=@c)) where bodynum=@c;
set @b = @b + 1 ;
end
set @a = @a + 1;
end
end
语法已经更新,注解掉的是我原来的语法
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.73.175.213
1F:→ drinks:感谢r版友的帮忙,已经试出来了 06/07 10:10
※ 编辑: drinks 来自: 203.73.175.213 (06/07 10:12)