質問: ### 前提・実現したいこと ここに質問したいことを詳細に書いてください (例)PHP(CakePHP)で●●なシステムを作っています。 ■■な機能を実装中に以下のエラーメッセージが発生しました。 現在SQLServerを使ってシステムを開発しています。 とあるテーブルの全データを別のテーブルに必要ができたのですが、 列の型がVarcharでもレコードに「~.jpg」のような値がある画像と認識するらしく 上手くINSERT文が動きません。 「.jpg」等が入っていても文字列と識別させる方法はあるのでしょうか? ### 発生している問題・エラーメッセージ ``` オペランド型の不整合: nvarchar(max) は image と互換性がありません ``` ### 該当のソースコード ``` INSERT INTO hoge.hogehoge SELECT * FROM fuga.hogehoge; ``` 列の型は [ID] [smallint] NOT NULL, [a] [tinyint] NULL, [b] [tinyint] NULL, [c] [tinyint] NULL, d] [nvarchar NULL レコードイメージ fuga.hogehoge ID a b c d 1 2 3 1 hogehoge.jpg 2 2 2 2 fugafuga.jpg 3 3 2 4 buu.jpg ### 試したこと 課題に対してアプローチしたことを記載してください ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報 DBMSは SQL Server 2014 Express
回答: image型は2017年に廃止される見込みで、nvarchar(max)への書き換えを推奨しているようですね。 だとすると、nvarchar(max)ではなく、字数制限を明示的にnvarchar(100)とかにすれば、推奨された記述にはならないので、文字列として認識してくれるのではないでしょうか。