0

ランダムなデータで変更する必要があるが、テスト目的で読み取り可能な、姓と名を含むテーブルを取得しました。そこで、別のデータベースにランダムな姓と名を含む別のテーブルを作成しました。作成したランダムな姓名でテスト データベースを更新したいと思います。また、念のために更新された名前を並べ替えたいので、意味がわかれば順番に更新したくありません。

こんな問い合わせが来ました

update DB1.table 
set Forename = (???? from DB2.table (Forename)??????)
where Forename is not null
4

1 に答える 1

2
Declare @Id int

DECLARE db_cursor CURSOR FOR  
SELECT Id 
FROM DB1.dbo.table 
WHERE Forename is not null

OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @id   

WHILE @@FETCH_STATUS = 0   
BEGIN   
        update DB1.dbo.table 
        set Forename = (select top(1) Forename from DB2.dbo.table order by newid())
        where Id = @id

       FETCH NEXT FROM db_cursor INTO @id   
END   

CLOSE db_cursor   
DEALLOCATE db_cursor

テーブル 1 の各フォアネームを、テーブル 2 のランダムなフォアネームで更新します。

次に、姓についても同じことを行うことができます。これにより、表2から名/姓がごちゃ混ぜになります。これは、最後の行で意味していると思います...

于 2013-08-21T15:44:26.433 に答える