如何在sql server中删除整列中的一个单词?

时间:2012-07-05 10:31:12

标签: c# .net sql-server

我只是用excel文件填满我的数据库,在检查完之后我发现在很多列中都有错误。

我在互联网上查看,当在多行中插入单元格时,这是Excel的错误。所以现在许多列中都出现了“ x000D ”这个词。

如何在整个数据库中使用sql查询删除它?

3 个答案:

答案 0 :(得分: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 :(得分:1)

你可以这样做:

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

此查询将清除设置为x000D的所有行中myColumn的值x000D

答案 2 :(得分:0)

使用更正的xls

可以更容易中继并重新加载表格