1

データベースに Excel ファイルを入力したところ、チェックアウトした後、多くの列にエラーがあることがわかりました。

インターネットでチェックアウトしましたが、セルを複数行に挿入するとExcelのバグです。そのため、「 x000D 」という単語が多くの列に表示されます。

データベース全体でSQLを使用したクエリで削除するにはどうすればよいですか?

4

3 に答える 3

2

すべてのデータベースでこれを行いたい場合は、ループするプロシージャを作成する必要があります

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>)

結果をコピーして実行すれば完了です。

于 2012-07-05T10:39:39.630 に答える
1

あなたはこれを行うことができます:

update MyTable -- <<=== Your table name
set myColumn = null -- <<=== Your column name
where myColumn='x000D'

このクエリは、 に設定されているすべての行x000Dから値をクリアします。myColumnx000D

于 2012-07-05T10:32:50.337 に答える
0

修正されたxlsを使用して、テーブルのトランクとリロードが簡単になる可能性があります

于 2012-07-05T10:42:09.470 に答える