我只是用excel文件填滿我的數據庫,檢查後我發現在很多列中都有錯誤。如何在sql server中刪除整列中的一個單詞?
我在網上查了一下,當插入多行的單元格時,它是Excel的一個bug。所以現在「x000D」這個詞出現在很多專欄中。
如何刪除它與整個數據庫中的SQL查詢?
我只是用excel文件填滿我的數據庫,檢查後我發現在很多列中都有錯誤。如何在sql server中刪除整列中的一個單詞?
我在網上查了一下,當插入多行的單元格時,它是Excel的一個bug。所以現在「x000D」這個詞出現在很多專欄中。
如何刪除它與整個數據庫中的SQL查詢?
如果你想做到這一點在所有的數據庫,你必須創建一個過程,通過
循環數據庫的INFORMATION_SCHEMA.COLUMNS
視圖,它會給你所有的列(他們的表)。您可以檢查您的列DATA_TYPE(你不需要更新整數列,例如)
然後,建立一個這樣的查詢在循環
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