2017-06-02 4 views
0

SQL Server 2000では、各テーブルに同じ列名で100を超えるテーブルがあります。今私はSQLの更新ステートメントを使用して一度に100テーブルの値を更新したいと思います。マルチテーブルの文の値を一度に更新する

どうすればよいですか?私はGoogleとstackoverflowしようとするが、実際には役に立たない。

本当にありがとうございました

+2

これは、他のテーブルがそれにリンクできるように、その中にこの列と静的な識別子のいくつかの並べ替えを持つ単一のテーブルを持つことによって取り扱われるべきものの一種である...そして、あなただけに必要があるだろう100 ... – ZLK

+0

の代わりに1つのテーブルを更新してください。単一のテーブルがあれば、更新ステートメントとは何でしょうか?そして、あなたはこのリンクからアイデアを得ることができます。あなたはパスします://dba.stackexchange.com/questions/171254 /削除する複数レコードのスクリプト/ 174557#174557 – KumarHarsh

答えて

0

は、データベース内のすべてのテーブルのカーソルを作成し、実行するために、動的クエリを使用します。 このスクリプトは、これを行うのに役立ちます。

--USE [Your DB] 
--GO 
DECLARE @tableName VARCHAR(100) 
DECLARE @sqlQuery VARCHAR(MAX) 
DECLARE curTable CURSOR FOR SELECT name FROM sys.objects WHERE type_desc = 'USER_TABLE' AND name NOT IN ('sysdiagrams') 
OPEN curTable 
FETCH NEXT FROM curTable INTO @tableName 
WHILE @@FETCH_STATUS = 0 
BEGIN 
    SELECT @sqlQuery = 'UPDATE ' + @tableName + 'SET [YourCol1] = [YourVal1], [YourCol2] = [YourVal2] ...' 
    PRINT @sqlQuery 
    EXECUTE sp_executesql @sqlQuery 

    FETCH NEXT FROM curTable INTO @tableName 
END 
CLOSE curTable 
DEALLOCATE curTable 
関連する問題