特定の列と固定数の行をテーブルからINSERTステートメントにエクスポートする方法はありますか?
大規模な実稼働テーブルに基づいてユニットテスト用にこれらを生成しようとしているので、SQL Server Management Studioの「スクリプトの生成」のようなものを使用することは問題外です。
これを実行できるツールはいくつかありますが、MySQLでそれほど些細なことは、SQL Serverではそれほど複雑ではないはずです(少なくとも私はそうは思わないでしょう)。
ありがとう!
インポート/エクスポートウィザードを使用し、テーブル全体をエクスポートする代わりに、sqlを選択して特定の行と列をエクスポートします。
あなたはSQLを次のように書くことができます:select column1, column2 from Table1 where some_condition
または、特定のデータを気にしない場合は、topコマンドを使用して、必要な数の行を抽出できます。
編集:以下は、インポートエクスポートのスクリーンショットですWizard(SSMSから起動)):
編集:
@ロビンあなたの状況では、あなたは2つのことをすることができます-
これが私があなたが望んでいたことを正確に行うためにしたことです...
(また、一部のテーブルの一部をApacheサーバーに転送するために、MySQLで挿入ステートメントが必要でした。そのため、構文が異なる場合があります)。
SELECT CONCAT(
'INSERT INTO `db_name`.`table_name`
(`col1`,
`col2`,
`col3`)
VALUES
(
' , [col1] , ','
, [col2], ','
, [col3], ');'
)
FROM [dbo].[db_name]
where col5 = 'some condition';
次に、結果を右クリックして、CSVファイルとして保存できます。次に、notepad ++でCSVファイルを開き、すべての二重引用符を "なしに置き換えます。
そして、volahにはmysqlworkbenchで実行し、必要な特定の列のみを別のデータベースに転送するための7000のinsertステートメントがありました。
ワークベンチまたはmssmsを使用して、いずれかのプログラムでテーブルを右クリックし、選択したステートメントにコピーすることにより、開始点として宛先テーブルの挿入ステートメントを生成できます。
このメソッドの優れている点は、挿入を実行する宛先で、ソースとは異なる列名が使用されている可能性があることです。