sql updateは、あるテーブルのデータが別のテーブルのデータを更新することを認識します

序文

以下のコードブロックは以前に使用されているため、リスクは比較的高くなります。テーブル内のデータがすぐに台無しになり、おそらくwhere条件が書き込まれなかったために、データベースを復元して再度置き換える必要がありました。

update A SET A.cj = b.cj FROM A ,B WHERE A.Name = B.Name

次に、通常の累積に基づいて次のコードを作成しました。これは確認できますが、リスクは比較的小さいです。

最初の一歩:

最初に、必要なステートメントを一時テーブルに照会します。挿入が成功したかどうかを確認できます

select ROW_NUMBER() OVER(ORDER BY ID)as RowID,* into #tabl1 from V_QM_335 where id>=276     --获取你要的数据插入到一个临时表中
select * from #tabl1

クエリが成功した後のテーブル

第二段階

変数@iループi、@ countテーブル内のデータの総数、および各ループのID @ IDを定義します。次に、テーブルから@countに総数を照会します。101個のデータが見つかりました*

declare @i int=1,@count int,@ID varchar(30)
select @count=count(1) from #tabl1
select @count

101個のデータが見つかりました

3番目のステップ:

主なコンテンツはwhileブロックのコンテンツです。内部では、最初にステートメントが正しいかどうかを確認しました。以下に示すように。問題がないことを確認した後、selectステートメントをコメントアウトし、execステートメントブロックがループ内でステートメントを実行できるようにします。OK!!!

select ROW_NUMBER() OVER(ORDER BY ID)as RowID,* into #tabl1 from V_QM_335 where id>=276     --获取你要的数据插入到一个临时表中
select * from #tabl1
declare @i int=1,@count int,@ID varchar(30)
select @count=count(1) from #tabl1
select @count
while(@i<=@count)
begin
    select @ID=V_335_1_10000005 from #tabl1 where RowID=@i 
    declare @strSql varchar(max)='update V_QM_340 set pid='+(select convert(varchar(10),max(ID)) from #tabl1 where V_335_1_10000005=@ID)+' where
V_340_1_10000005='''+@ID+''''
    select(@strSql)
    --exec(@strSql)
    set @i+=1
end

updateステートメントに問題がないことを確認します
バックアップ份给自己SELECTROW_NUMBER
()OVER(ORDER BY PageCode)AS id、PageCode、ColumnCode INTO#tabl1 FROM dbo.QM_ColumnsInfo WHERE ColumnCode = 10000709

–SELECT * FROM#tabl1
DECLARE @id INT = 1
DECLARE @pagecode VARCHAR(100)= ''、@ columncode VARCHAR(100)= ''
DECLARE @count int = 0、@ i int = 1;
SELECT @ count = COUNT(1)FROM#tabl1
WHILE(@i <@count)
BEGIN
SELECT @ pagecode = PageCode、@ columncode = ColumnCode FROM#tabl1 WHERE id = @ i
DECLARE @sql VARCHAR(MAX)= ''
SET @ columncode = 'V _' + @ pagecode + ' 1 ' + @ columncode
SET @ pagecode = 'V_QM _' + @ pagecode
SET @ sql = 'update' + @ pagecode + 'set' + @ columncode + '= REPLACE(' + @ columncode + '、 '' qmUpload / file ''、 '' / files / qmUpload / file '') '– SET
@ sql =' select '+ @ columncode +'、REPLACE( '+ @ columncode +'、 '' qmUpload / file ''、 ' '/ files / qmUpload / file' ')from' + @ pagecode
print(@sql)
SET @ i + = 1
終わり

ドロップテーブル#tabl1

おすすめ

転載: blog.csdn.net/hello_mr_anan/article/details/90228956