1

我只是用一个 excel 文件填充了我的数据库,在检查它之后,我发现在许多列中都有一个错误。

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

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

4

3 回答 3

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

你复制结果并执行它,你就完成了。

于 2012-07-05T10:39:39.630 回答
1

你可以这样做:

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

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

于 2012-07-05T10:32:50.337 回答
0

使用更正的 xls 可以更容易地整理和重新加载表格

于 2012-07-05T10:42:09.470 回答