INSERT INTOの実行中にSELECTステートメントでデータを作成するにはどうすればよいですか?

mrplainswalker

質問がわかりにくい場合は申し訳ありませんが、正確に質問する方法がわかりませんでした。基本的に、私は20列と数百万行の巨大なテーブルを持っています。これらの行と列のサブセットを別のテーブルに挿入し、次にそれらの行ごとに、テーブルに新しい時刻と新しいGUIDを作成します。たとえば、次の表があるとします。

CREATE TABLE [dbo].[AddressData](
    [ID] [bigint] IDENTITY(1,1) NOT NULL,
    [AddressDataGUID] [uniqueidentifier] ROWGUIDCOL NOT NULL,
    [City] [varchar](32) NOT NULL,
    [State] [varchar](2) NOT NULL,
    [DateModified] [datetime2](7) NOT NULL,
    [TS] [timestamp] NOT NULL,
 CONSTRAINT [PK_AddressData_ID] PRIMARY KEY CLUSTERED [ID]

これで、CityとStateを含む別のテーブルもありますが、Street、Zipなど、他の列もたくさんあります。大きなテーブルからCityとStateの個別のペアをすべて選択し、それらをに貼り付けます。新しいテーブルです。また、DateModifiedを現在の時刻に設定し、それらの個別のペアごとに新しいランダムGUIDを作成する必要があります。SQLServerでこれを行う方法がわかりません。私は次のようなことを試しました:

INSERT INTO Community (CommunityGUID, City, [State], DateModified)
VALUES (NEWID(), t.City, t.[State], SYSUTCDATETIME())
SELECT DISTINCT City, [State] FROM FullTable t

ただし、正しい構文がわかりません。おそらく、すべてのnull許容フィールドを含む一時テーブルを作成し、これら2つの列で個別に選択し、行ごとにループしてこれらの値をすべて作成し、最後に完全に構​​築されたテーブルを他のテーブルに選択することで、これを処理できます。 。それはデータベース開発者ではなくソフトウェア開発者としての私の最初の本能であるため、私はほとんどそれをやりたくなりますが、DB開発者は、1つのステートメントでそれを行う方法があれば、DBにそのようなものを置くことを嫌う傾向があります。 DBエンジンはそれを最適化します。

ゴードン・リノフ

私はあなたがちょうどのための本当のクエリが欲しいと思いますINSERT

INSERT INTO Community (CommunityGUID, City, [State], DateModified)
    SELECT NEWID(), t.City, t.[State], SYSUTCDATETIME()
    FROM (SELECT DISTINCT City, [State]
          FROM FullTable t
         ) t;

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

INSERT INTOステートメントで主キーを指定するにはどうすればよいですか?

分類Dev

SQL ServerでINSERT、UPDATE、DELETE、SELECTステートメントのレートを取得するにはどうすればよいですか?

分類Dev

PostgreSQLのDROP / CREATE / INSERTステートメントでSET変数を簡潔に使用するにはどうすればよいですか?

分類Dev

1つのInsertステートメントを使用して数十万のレコードを挿入するにはどうすればよいですか?

分類Dev

INSERTステートメント内でテーブルを返す関数を使用するにはどうすればよいですか?

分類Dev

MySQLのINSERTステートメント内でSELECTMAXを使用するにはどうすればよいですか?

分類Dev

INSERTステートメントのOUTPUT句を使用してID値を取得するにはどうすればよいですか?

分類Dev

PHPのprepareステートメントを使用してinsert_idを取得するにはどうすればよいですか?

分類Dev

INSERT INTOステートメントを使用してBLOBフィールドに単純な値を挿入するにはどうすればよいですか?

分類Dev

「INSERTステートメントがFOREIGNKEY制約と競合しました」というメッセージを回避するためのチェックを作成するにはどうすればよいですか?

分類Dev

単一のphpプリペアドステートメントでSELECTクエリとINSERTクエリの両方を使用するにはどうすればよいですか?

分類Dev

次のCTEをラップして、その出力をINSERT INTOステートメントで使用できるようにするにはどうすればよいですか?

分類Dev

データベースに依存せずに(Mockitoを使用して)Insert()、update()、delete()メソッドにJUnitテストを適用するにはどうすればよいですか?

分類Dev

jooqでinsert ... returnステートメントを「テーブルのような」クエリとして使用するにはどうすればよいですか?

分類Dev

主キーの自動インクリメントを使用して、Firebird に INSERT するにはどうすればよいですか?

分類Dev

Bigqueryクライアントのinsert_rows_from_dataframeメソッドからのみエラーを取得するにはどうすればよいですか?

分類Dev

SELECTステートメントにあるINSERTを実行する方法は?

分類Dev

AUTO INCREMENTフィールドによるMySQLパーティショニングを使用して、INSERT / LOAD DATAステートメントが指定されたパーティションにのみアクセスすることを保証するにはどうすればよいですか?

分類Dev

PostgreSQL / PostGISでINSERTトリガーの後にテーブルの新しい値を更新するにはどうすればよいですか?

分類Dev

INSERTを実行するSQLWHILEループでCASEステートメントが繰り返されないようにする方法

分類Dev

AccessVBAからのパススルークエリを使用してSETIDENTITY_INSERT ON / OFFを実行するにはどうすればよいですか?

分類Dev

EclipseLink / JPAがすべてのINSERTの前にSELECTを実行しないようにするにはどうすればよいですか?

分類Dev

JawsDBのユーザーがINSERTステートメントを作成できるようにする

分類Dev

INSERTステートメント中にデータを検証するためにCHECK制約を使用することは良い習慣ですか?

分類Dev

sqlalchemyのbefore_insertイベントにモデルのリレーションシップインスタンスを追加するにはどうすればよいですか?

分類Dev

CKEditor 5のInsertイベントからテキストを取得するにはどうすればよいですか?

分類Dev

mysqlのupdate / insertを使用して削除前/削除後のトリガーを作成するにはどうすればよいですか?

分類Dev

Hql Insertの値としてJavaリストを使用するにはどうすればよいですか?

分類Dev

保存されているすべての行を含む既存のSQLServerテーブルのINSERTスクリプトを生成するにはどうすればよいですか?

Related 関連記事

  1. 1

    INSERT INTOステートメントで主キーを指定するにはどうすればよいですか?

  2. 2

    SQL ServerでINSERT、UPDATE、DELETE、SELECTステートメントのレートを取得するにはどうすればよいですか?

  3. 3

    PostgreSQLのDROP / CREATE / INSERTステートメントでSET変数を簡潔に使用するにはどうすればよいですか?

  4. 4

    1つのInsertステートメントを使用して数十万のレコードを挿入するにはどうすればよいですか?

  5. 5

    INSERTステートメント内でテーブルを返す関数を使用するにはどうすればよいですか?

  6. 6

    MySQLのINSERTステートメント内でSELECTMAXを使用するにはどうすればよいですか?

  7. 7

    INSERTステートメントのOUTPUT句を使用してID値を取得するにはどうすればよいですか?

  8. 8

    PHPのprepareステートメントを使用してinsert_idを取得するにはどうすればよいですか?

  9. 9

    INSERT INTOステートメントを使用してBLOBフィールドに単純な値を挿入するにはどうすればよいですか?

  10. 10

    「INSERTステートメントがFOREIGNKEY制約と競合しました」というメッセージを回避するためのチェックを作成するにはどうすればよいですか?

  11. 11

    単一のphpプリペアドステートメントでSELECTクエリとINSERTクエリの両方を使用するにはどうすればよいですか?

  12. 12

    次のCTEをラップして、その出力をINSERT INTOステートメントで使用できるようにするにはどうすればよいですか?

  13. 13

    データベースに依存せずに(Mockitoを使用して)Insert()、update()、delete()メソッドにJUnitテストを適用するにはどうすればよいですか?

  14. 14

    jooqでinsert ... returnステートメントを「テーブルのような」クエリとして使用するにはどうすればよいですか?

  15. 15

    主キーの自動インクリメントを使用して、Firebird に INSERT するにはどうすればよいですか?

  16. 16

    Bigqueryクライアントのinsert_rows_from_dataframeメソッドからのみエラーを取得するにはどうすればよいですか?

  17. 17

    SELECTステートメントにあるINSERTを実行する方法は?

  18. 18

    AUTO INCREMENTフィールドによるMySQLパーティショニングを使用して、INSERT / LOAD DATAステートメントが指定されたパーティションにのみアクセスすることを保証するにはどうすればよいですか?

  19. 19

    PostgreSQL / PostGISでINSERTトリガーの後にテーブルの新しい値を更新するにはどうすればよいですか?

  20. 20

    INSERTを実行するSQLWHILEループでCASEステートメントが繰り返されないようにする方法

  21. 21

    AccessVBAからのパススルークエリを使用してSETIDENTITY_INSERT ON / OFFを実行するにはどうすればよいですか?

  22. 22

    EclipseLink / JPAがすべてのINSERTの前にSELECTを実行しないようにするにはどうすればよいですか?

  23. 23

    JawsDBのユーザーがINSERTステートメントを作成できるようにする

  24. 24

    INSERTステートメント中にデータを検証するためにCHECK制約を使用することは良い習慣ですか?

  25. 25

    sqlalchemyのbefore_insertイベントにモデルのリレーションシップインスタンスを追加するにはどうすればよいですか?

  26. 26

    CKEditor 5のInsertイベントからテキストを取得するにはどうすればよいですか?

  27. 27

    mysqlのupdate / insertを使用して削除前/削除後のトリガーを作成するにはどうすればよいですか?

  28. 28

    Hql Insertの値としてJavaリストを使用するにはどうすればよいですか?

  29. 29

    保存されているすべての行を含む既存のSQLServerテーブルのINSERTスクリプトを生成するにはどうすればよいですか?

ホットタグ

アーカイブ