Openrowsetを使用して、「ステータス」列を持つExcelをインポートしています。その値は「TRUE/FALSE/CANCELLED」です。私はTypeGuessRows = 0に応じてレジストリを設定しました。 Excelファイルの "status"列に "TRUE/FALSE/CANCELED"という値が含まれている場合、期待通りにテキスト値としてインポートされます。Openrowset for excel:True/Falseを1/0に変換しない
ただし、「TRUE/FALSE」のみを含む場合、インポートされる値は「1」および「0」になります。だからいくつかのExcelファイルをインポートした後、私のSQLテーブルの列の値は、 "TRUE、FALSE、CANCELLED、1,0"です。 TRUE/FALSEを1/0に自動的に変換せずにSQL Serverにテキストをインポートする方法を教えてください。私は1/0をTRUE/FALSEに戻すために愚かなSQL文を書いてはいけません。 他の解決方法はどうですか?
MSがTRUE/FALSEから1/0に自動変換を無効にする公式の方法を提供していないという悪い知らせです。複雑なExcelファイルがあるため、必要に応じてTypeGuessRows = 0を設定する必要があります。 セルのフォーマットを変更することは、列を再定義する追加の手順が必要ですが、解決策として機能します。しかし、それは "セルの書式設定..."を使用していません。代わりに、データグループの下に「テキストを列に」を使用し、列をテキストとして定義して、完全に機能させる必要があります。 –