SQL Serverでは、Insertステートメントに含めることができなかったデータ型は何ですか?

Gopakumar N.Kurup

insertあるデータベースのテーブルから同じサーバー上の別のデータベースにデータをコピーするステートメントがあります。

他のデータベースのテーブル名がわからないため、クエリを動的に生成する必要があります。このエラーがスローされるため、列TIMESTAMPINSERTリストに含めることができないことを知っています。

タイムスタンプ列に明示的な値を挿入することはできません。列リストでINSERTを使用してタイムスタンプ列を除外するか、タイムスタンプ列にDEFAULTを挿入します。

このように、SQL Server 2008にはいくつのデータ型があるかを知る必要があります。データを挿入するときに、これらのデータ型を除外できます。

誰かが便利な情報を持っているなら、それは非常に役に立ちます。

アレックス

短い答え

私のマシン(SQL Server 2014)では、timestampへの挿入のみが許可されていません。

:注意もありrowversionこれは、MSDNのの同義語としてリストtimestamp、まだそれは表示されませんsys.types

明らかに、これが機能しない可能性のある他の機能があります(コメントで言及されているように)。 IDENTITY

長い答え

自分で確認する方法は次のとおりです。

サポートされているすべてのタイプを列として持つテーブル作成スクリプトを生成します。

SELECT 'CREATE TABLE #Types( ' + STUFF( 
( SELECT ', Type_' + name + ' ' + name
FROM sys.types
ORDER BY system_type_id
FOR XML PATH( '' )), 1, 1, '' ) + ' )'

次のようなものが得られます。

CREATE TABLE #Types(  Type_image image, Type_text text, ..... )

挿入ステートメントと選択ステートメントを生成します。

SELECT 'INSERT INTO #Types( ' + STUFF( 
( SELECT ', Type_' + name
FROM sys.types
ORDER BY system_type_id
FOR XML PATH( '' )), 1, 1, '' ) + ' )'

SELECT 'SELECT ' + STUFF( 
( SELECT ', CONVERT( ' + name + ', '''' )'
FROM sys.types
ORDER BY system_type_id
FOR XML PATH( '' )), 1, 1, '' )

注:のためにSELECT私たちは型に空の文字列を変換するほとんどの種類は「たとえば、」を成功するという事実を利用する- >変換(INT - > 0。

すべてのタイプで機能するわけではありませんが、いくつかあり、MSDNでタイプ情報(geographyなど)を検索してサンプル値を取得できます。

SQL Serverが挿入を拒否するデフォルト値と除外されたタイプを整理したら、別のテーブルを生成#Types2して、#Typesテーブルから値を挿入できます

完全なコード:

CREATE TABLE #Types(  Type_image image, Type_text text, Type_uniqueidentifier uniqueidentifier, Type_date date, Type_time time, Type_datetime2 datetime2, Type_datetimeoffset datetimeoffset, Type_tinyint tinyint, Type_smallint smallint, Type_int int, Type_smalldatetime smalldatetime, Type_real real, Type_money money, Type_datetime datetime, Type_float float, Type_sql_variant sql_variant, Type_ntext ntext, Type_bit bit, Type_decimal decimal, Type_numeric numeric, Type_smallmoney smallmoney, Type_bigint bigint, Type_varbinary varbinary, Type_varchar varchar, Type_binary binary, Type_char char, Type_timestamp timestamp, Type_nvarchar nvarchar, Type_sysname sysname, Type_nchar nchar, Type_hierarchyid hierarchyid, Type_geometry geometry, Type_geography geography, Type_xml xml )
INSERT INTO #Types(  Type_image, Type_text, Type_uniqueidentifier, Type_date, Type_time, Type_datetime2, Type_datetimeoffset, Type_tinyint, Type_smallint, Type_int, Type_smalldatetime, Type_real, Type_money, Type_datetime, Type_float, Type_sql_variant, Type_ntext, Type_bit, Type_decimal, Type_numeric, Type_smallmoney, Type_bigint, Type_varbinary, Type_varchar, Type_binary, Type_char, Type_nvarchar, Type_sysname, Type_nchar, Type_hierarchyid, Type_geometry, Type_geography, Type_xml )
SELECT  CONVERT( image, '' ), CONVERT( text, '' ), CONVERT( uniqueidentifier, '0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong' ), CONVERT( date, '' ), CONVERT( time, '' ), CONVERT( datetime2, '' ), CONVERT( datetimeoffset, '' ), CONVERT( tinyint, '' ), CONVERT( smallint, '' ), CONVERT( int, '' ), CONVERT( smalldatetime, '' ), CONVERT( real, '' ), CONVERT( money, '' ), CONVERT( datetime, '' ), CONVERT( float, '' ), CONVERT( sql_variant, '' ), CONVERT( ntext, '' ), CONVERT( bit, '' ), CONVERT( decimal, '0' ), CONVERT( numeric, '0' ), CONVERT( smallmoney, '' ), CONVERT( bigint, '' ), CONVERT( varbinary, '' ), CONVERT( varchar, '' ), CONVERT( binary, '' ), CONVERT( char, '' ), CONVERT( nvarchar, '' ), CONVERT( sysname, '' ), CONVERT( nchar, '' ), CONVERT( hierarchyid, '/1/3/' ), geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0 ), geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656 )', 4326), CONVERT( xml, '' )

CREATE TABLE #Types2(  Type_image image, Type_text text, Type_uniqueidentifier uniqueidentifier, Type_date date, Type_time time, Type_datetime2 datetime2, Type_datetimeoffset datetimeoffset, Type_tinyint tinyint, Type_smallint smallint, Type_int int, Type_smalldatetime smalldatetime, Type_real real, Type_money money, Type_datetime datetime, Type_float float, Type_sql_variant sql_variant, Type_ntext ntext, Type_bit bit, Type_decimal decimal, Type_numeric numeric, Type_smallmoney smallmoney, Type_bigint bigint, Type_varbinary varbinary, Type_varchar varchar, Type_binary binary, Type_char char, Type_nvarchar nvarchar, Type_sysname sysname, Type_nchar nchar, Type_hierarchyid hierarchyid, Type_geometry geometry, Type_geography geography, Type_xml xml )

INSERT INTO #Types2(  Type_image, Type_text, Type_uniqueidentifier, Type_date, Type_time, Type_datetime2, Type_datetimeoffset, Type_tinyint, Type_smallint, Type_int, Type_smalldatetime, Type_real, Type_money, Type_datetime, Type_float, Type_sql_variant, Type_ntext, Type_bit, Type_decimal, Type_numeric, Type_smallmoney, Type_bigint, Type_varbinary, Type_varchar, Type_binary, Type_char, Type_nvarchar, Type_sysname, Type_nchar, Type_hierarchyid, Type_geometry, Type_geography, Type_xml )
SELECT Type_image, Type_text, Type_uniqueidentifier, Type_date, Type_time, Type_datetime2, Type_datetimeoffset, Type_tinyint, Type_smallint, Type_int, Type_smalldatetime, Type_real, Type_money, Type_datetime, Type_float, Type_sql_variant, Type_ntext, Type_bit, Type_decimal, Type_numeric, Type_smallmoney, Type_bigint, Type_varbinary, Type_varchar, Type_binary, Type_char, Type_nvarchar, Type_sysname, Type_nchar, Type_hierarchyid, Type_geometry, Type_geography, Type_xml
FROM #Types

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

データベースエグゼキュータは、SQLステートメントの「、」が分割インジケータではないことをどのようにして知ることができますか?

分類Dev

SQLステートメントの構文に関して私が見逃したことは何ですか?

分類Dev

SQL Serverに結合ステートメントを追加するとテーブルデータが失われるのはなぜですか?

分類Dev

SQLデータベースエントリを更新しようとすると、SQL構文エラーが発生します。ここで何が問題になっているのかを理解するにはどうすればよいですか?

分類Dev

プリペアドSQLステートメントはデータベースで書き換えることができますか?

分類Dev

値の挿入ステートメントには、SQLデータウェアハウス内の定数リテラル値または変数参照のみを含めることができます

分類Dev

Visual Studio 2017でSQLテーブルを削除しようとすると、SSOXで「オブジェクト定義ウィンドウが開いているためにデータベースオブジェクトを削除できません」というメッセージが表示されるのはなぜですか。

分類Dev

単純なSQLステートメントからmssqldbを照会するために出力することができません

分類Dev

SQL Serverデータベースでロールを持つことのポイントは何ですか?

分類Dev

条件付きの列を選択するためのこのSQLステートメントの何が問題になっていますか

分類Dev

このSQLクエリをElequentステートメントとして作成するための最良の方法は何ですか

分類Dev

このSQLクエリをElequentステートメントとして作成するための最良の方法は何ですか

分類Dev

node-postgresによって返されたエラーと一緒にSQLステートメントを取得することは可能ですか?

分類Dev

SQLステートメントの「or」でこのエラーは何ですか?

分類Dev

SQL ServerでDECIMALデータ型を宣言するときに数字を使用する目的は何ですか?

分類Dev

SQLステートメントでパラメーターを使用することを常に好むのはなぜですか?

分類Dev

複雑なネストされたSQLアソシエーションを管理可能なサービスに変換するためのフロントエンドデータモデリングのベストプラクティスは何ですか?

分類Dev

SQLクエリが空白に戻った場合のC#ifステートメントはどこに置くべきですか?

分類Dev

このステートメントをSQLに挿入できないのはなぜですか

分類Dev

SQLステートメントをsargableにする理由は何ですか?

分類Dev

SQLステートメントをsargableにする理由は何ですか?

分類Dev

SQLステートメントをsargableにする理由は何ですか?

分類Dev

AccessのSQLステートメントで検索文字列の最後に「CF」を追加すると「データ型の不一致」エラーが発生するのはなぜですか?

分類Dev

SQLの「in」ステートメントに応答するRステートメントは何ですか?

分類Dev

SQL Serverデータベースユーザーが間違ったスキーマに書き込んでいるのはなぜですか?

分類Dev

SQL ステートメントはエディターでは機能するのに JS 関数では機能しないのはなぜですか?

分類Dev

SQLステートメントがVB6で正常に実行されたことを確認するにはどうすればよいですか?

分類Dev

Select SQLステートメントで、リンクされたテーブルと共にリンクされていないテーブルを使用することは何ですか

分類Dev

LinqのこのSQLステートメントに相当するものは何ですか?

Related 関連記事

  1. 1

    データベースエグゼキュータは、SQLステートメントの「、」が分割インジケータではないことをどのようにして知ることができますか?

  2. 2

    SQLステートメントの構文に関して私が見逃したことは何ですか?

  3. 3

    SQL Serverに結合ステートメントを追加するとテーブルデータが失われるのはなぜですか?

  4. 4

    SQLデータベースエントリを更新しようとすると、SQL構文エラーが発生します。ここで何が問題になっているのかを理解するにはどうすればよいですか?

  5. 5

    プリペアドSQLステートメントはデータベースで書き換えることができますか?

  6. 6

    値の挿入ステートメントには、SQLデータウェアハウス内の定数リテラル値または変数参照のみを含めることができます

  7. 7

    Visual Studio 2017でSQLテーブルを削除しようとすると、SSOXで「オブジェクト定義ウィンドウが開いているためにデータベースオブジェクトを削除できません」というメッセージが表示されるのはなぜですか。

  8. 8

    単純なSQLステートメントからmssqldbを照会するために出力することができません

  9. 9

    SQL Serverデータベースでロールを持つことのポイントは何ですか?

  10. 10

    条件付きの列を選択するためのこのSQLステートメントの何が問題になっていますか

  11. 11

    このSQLクエリをElequentステートメントとして作成するための最良の方法は何ですか

  12. 12

    このSQLクエリをElequentステートメントとして作成するための最良の方法は何ですか

  13. 13

    node-postgresによって返されたエラーと一緒にSQLステートメントを取得することは可能ですか?

  14. 14

    SQLステートメントの「or」でこのエラーは何ですか?

  15. 15

    SQL ServerでDECIMALデータ型を宣言するときに数字を使用する目的は何ですか?

  16. 16

    SQLステートメントでパラメーターを使用することを常に好むのはなぜですか?

  17. 17

    複雑なネストされたSQLアソシエーションを管理可能なサービスに変換するためのフロントエンドデータモデリングのベストプラクティスは何ですか?

  18. 18

    SQLクエリが空白に戻った場合のC#ifステートメントはどこに置くべきですか?

  19. 19

    このステートメントをSQLに挿入できないのはなぜですか

  20. 20

    SQLステートメントをsargableにする理由は何ですか?

  21. 21

    SQLステートメントをsargableにする理由は何ですか?

  22. 22

    SQLステートメントをsargableにする理由は何ですか?

  23. 23

    AccessのSQLステートメントで検索文字列の最後に「CF」を追加すると「データ型の不一致」エラーが発生するのはなぜですか?

  24. 24

    SQLの「in」ステートメントに応答するRステートメントは何ですか?

  25. 25

    SQL Serverデータベースユーザーが間違ったスキーマに書き込んでいるのはなぜですか?

  26. 26

    SQL ステートメントはエディターでは機能するのに JS 関数では機能しないのはなぜですか?

  27. 27

    SQLステートメントがVB6で正常に実行されたことを確認するにはどうすればよいですか?

  28. 28

    Select SQLステートメントで、リンクされたテーブルと共にリンクされていないテーブルを使用することは何ですか

  29. 29

    LinqのこのSQLステートメントに相当するものは何ですか?

ホットタグ

アーカイブ