TITLEというvarchar(10)の列があります。列ヘッダーを含む最初の行を除いて、列の残りの部分はたまたますべて整数であるため、データ型をintに変更したいと思いました。
ALTER TABLE X
ALTER COLUMN TITLE int
列ヘッダーである最初の行を変換すると、エラーが発生します。「varchar値'TITLE'をデータ型intに変換すると変換に失敗しました。
では、列ヘッダーを除くすべての行のデータ型を変換するにはどうすればよいですか?
TITLEというvarchar(10)の列があります。列ヘッダーを含む最初の行を除いて、列の残りの部分はたまたますべて整数であるため、データ型をintに変更したいと思いました。
ALTER TABLE X
ALTER COLUMN TITLE int
列ヘッダーである最初の行を変換すると、エラーが発生します。「varchar値'TITLE'をデータ型intに変換すると変換に失敗しました。
では、列ヘッダーを除くすべての行のデータ型を変換するにはどうすればよいですか?
簡単な答えは「いいえ」です。単一のSQL列にデータ型を混在させることはできません。データ型は、並べ替え、インデックスの作成などで一貫している必要があります。
別のテーブルを使用してさまざまな列ヘッダーを格納したり、同じテーブルに別の列を格納したりできます。
保存するデータの種類によっては、 MongoDBなどのNoSQLソリューションを使用することがアプローチになる場合があります。これらのソリューションを使用すると、ドキュメントごとに異なる可能性があるスキーマをより柔軟に使用できます。
申し訳ありませんが、同じ列に複数のデータ型を含めることはできません。
あなたはそうしない。列は、それぞれが独自のタイプを持つことができる独立変数のコレクションではありません。列内のすべてが同じタイプです。これを実行しようとしている場合、スキーマは本来あるべきものではない可能性があります。もう少し詳細を投稿すると、改善されたスキーマでいくつかの回答が得られる可能性があります。
列内で「n」一致のデータ型を混在させることはできません。VarBinary
またはのようなファジーデータ型を使用して、好きなようXML
に解釈できます。
OTOH、sp_addextendedpropertyを使用して、列のタイトルやその他の余分な綿毛を保存できます。