2012-07-05 81 views
1

我只是用excel文件填滿我的數據庫,檢查後我發現在很多列中都有錯誤。如何在sql server中刪除整列中的一個單詞?

我在網上查了一下,當插入多行的單元格時,它是Excel的一個bug。所以現在「x000D」這個詞出現在很多專欄中。

如何刪除它與整個數據庫中的SQL查詢?

回答

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

複製的結果,並執行它,你完成。

1

你可以這樣做:

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

這個查詢將被設置爲x000D所有行清除從myColumnx000D

0

可能更容易中繼並重新載入表格,並更正xls

相關問題