sql >> データベース >  >> RDS >> Sqlserver

VARBINARY(MAX)フィールドを持つテーブルのINSERTスクリプトを生成するにはどうすればよいですか?

    これが1回限りの(またはめったにない)ことである場合は、次の説明に従って、SSMSウィザードからデータをスクリプト化してみてください。

    http:/ /sqlblog.com/blogs/eric_johnson/archive/2010/03/08/script-data-in-sql-server-2008.aspx

    または、これを頻繁に行う必要があり、自動化したい場合は、 SQL#> SQLCLRライブラリ(私が作成したもので、ほとんどは無料ですが、ここで必要な関数は無料ではありません)。これを行う関数はDB_DumpDataです また、 INSERTも生成します ステートメント。

    ただし、これが1回限りのタスクまたはまれなタスクである場合は、ManagementStudioに組み込まれているデータエクスポートウィザードを試してください。これにより、本番環境で実行できるSQLスクリプトを作成できるようになります。 VARBINARY(MAX)を使用してテーブルでこれをテストしました 3,365,964バイトのデータを含むフィールドとスクリプトの生成ウィザードがINSERTを生成しました その1つの値に対して673万文字の16進文字列全体を含むステートメント。

    更新:
    INSERTステートメント全体をコピーしてSQLスクリプトに貼り付けることができ、BCPやSSMSエクスポートウィザードを気にする必要がない方法でこれを行うもう1つの迅速で簡単な方法は、値を<に変換することです。 code> XML 。まず、 CONVERT VARBINARY VARCHAR(MAX)へ オプションのスタイル「1」を使用すると、「0x」で始まる16進文字列が得られます。バイナリデータの16進文字列を取得したら、それを INSERTに連結できます。 XML に変換すると、ステートメントとそのすべてが 、 VARBINARY全体を含めることができます 分野。次の例を参照してください:

    DECLARE @Binary VARBINARY(MAX) = CONVERT(VARBINARY(MAX),
                                             REPLICATE(
                                               CONVERT(NVARCHAR(MAX), 'test string'),
                                               100000)
                                            )
    
    SELECT 'INSERT INTO dbo.TableName (ColumnName) VALUES ('+
           CONVERT(VARCHAR(MAX), @Binary, 1) + ')' AS [Insert]
    FOR XML RAW;
    


    1. MySQL CSVインポート-タイムスタンプにミリ秒がある場合、日付は0000-00-00 00:00:00として入力されますか?

    2. グローバルinnodb_buffer_pool_sizeを設定する方法は?

    3. データベースで実行されたクエリの数を知るにはどうすればよいですか?

    4. Pythonは、すべてを設定した後、HerokuでODBCドライバーを見つけることができません