データベースに Excel ファイルを入力したところ、チェックアウトした後、多くの列にエラーがあることがわかりました。
インターネットでチェックアウトしましたが、セルを複数行に挿入するとExcelのバグです。そのため、「 x000D 」という単語が多くの列に表示されます。
データベース全体でSQLを使用したクエリで削除するにはどうすればよいですか?
データベースに Excel ファイルを入力したところ、チェックアウトした後、多くの列にエラーがあることがわかりました。
インターネットでチェックアウトしましたが、セルを複数行に挿入するとExcelのバグです。そのため、「 x000D 」という単語が多くの列に表示されます。
データベース全体でSQLを使用したクエリで削除するにはどうすればよいですか?
すべてのデータベースでこれを行いたい場合は、ループするプロシージャを作成する必要があります
INFORMATION_SCHEMA.COLUMNS
データベースのすべての列 (およびそれらのテーブル) を表示するビュー。列のDATA_TYPEを確認できます(たとえば、整数列を更新する必要はありません)
次に、動的SQLを使用して、ループ内でそのようなクエリを作成します
UPDATE <MYTABLE> SET <MYCOLUMN> = REPLACE(<MYCOLUMN>, 'x000D', '')
そしてそれを実行します。
編集
ストアド プロシージャを使用せずに、より速く、あまりクリーンではなく、SQL Server Management studio に入力できます。
SELECT 'UPDATE '
+ c.TABLE_NAME
+ ' SET '
+ c.COLUMN_NAME
+ ' =REPLACE(' + c.COLUMN_NAME + ', ''x000D'', '''');'
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE c.DATA_TYPE = 'nvarchar' // or IN (<the types you wanna correct>)
結果をコピーして実行すれば完了です。
あなたはこれを行うことができます:
update MyTable -- <<=== Your table name
set myColumn = null -- <<=== Your column name
where myColumn='x000D'
このクエリは、 に設定されているすべての行x000D
から値をクリアします。myColumn
x000D
修正されたxlsを使用して、テーブルのトランクとリロードが簡単になる可能性があります