我只是用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