1

TITLEというvarchar(10)の列があります。列ヘッダーを含む最初の行を除いて、列の残りの部分はたまたますべて整数であるため、データ型をintに変更したいと思いました。

ALTER TABLE X
ALTER COLUMN TITLE int

列ヘッダーである最初の行を変換すると、エラーが発生します。「varchar値'TITLE'をデータ型intに変換すると変換に失敗しました。

では、列ヘッダーを除くすべての行のデータ型を変換するにはどうすればよいですか?

4

4 に答える 4

1

簡単な答えは「いいえ」です。単一のSQL列にデータ型を混在させることはできません。データ型は、並べ替え、インデックスの作成などで一貫している必要があります。

別のテーブルを使用してさまざまな列ヘッダーを格納したり、同じテーブルに別の列を格納したりできます。

保存するデータの種類によっては、 MongoDBなどのNoSQLソリューションを使用することがアプローチになる場合があります。これらのソリューションを使用すると、ドキュメントごとに異なる可能性があるスキーマをより柔軟に使用できます。

于 2013-02-01T17:55:43.657 に答える
0

申し訳ありませんが、同じ列に複数のデータ型を含めることはできません。

データ型

于 2013-02-01T17:57:45.670 に答える
0

あなたはそうしない。列は、それぞれが独自のタイプを持つことができる独立変数のコレクションではありません。列内のすべてが同じタイプです。これを実行しようとしている場合、スキーマは本来あるべきものではない可能性があります。もう少し詳細を投稿すると、改善されたスキーマでいくつかの回答が得られる可能性があります。

于 2013-02-01T17:58:35.820 に答える
0

列内で「n」一致のデータ型を混在させることはできません。VarBinaryまたはのようなファジーデータ型を使用して、好きなようXMLに解釈できます。

OTOH、sp_addextendedpropertyを使用して、列のタイトルやその他の余分な綿毛を保存できます。

于 2013-02-01T19:27:16.757 に答える