看板 Database 關於我們 聯絡資訊
小弟我想要批次更新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
drinks:感謝r版友的幫忙,已經試出來了 06/07 10:10
※ 編輯: drinks 來自: 203.73.175.213 (06/07 10:12)