2012-07-05 61 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

相关问题