C# 如何在sql server中删除整列中的一个单词?
我只是用一个excel文件填充了我的数据库,在检查了它之后,我发现在很多列中都有一个错误 我在网上查到,在多行中插入单元格是Excel的一个缺陷。因此,现在x000D这个词出现在许多列中 如何在整个数据库中使用sql查询删除它?您可以执行以下操作:C# 如何在sql server中删除整列中的一个单词?,c#,.net,sql-server,C#,.net,Sql Server,我只是用一个excel文件填充了我的数据库,在检查了它之后,我发现在很多列中都有一个错误 我在网上查到,在多行中插入单元格是Excel的一个缺陷。因此,现在x000D这个词出现在许多列中 如何在整个数据库中使用sql查询删除它?您可以执行以下操作: update MyTable -- <<=== Your table name set myColumn = null -- <<=== Your column name where myColumn='x000D' 此查询
update MyTable -- <<=== Your table name
set myColumn = null -- <<=== Your column name
where myColumn='x000D'
此查询将清除设置为x000D的所有行中myColumn的值x000D。如果要在所有数据库上执行此操作,必须创建一个循环过程 INFORMATION_SCHEMA.COLUMNS视图,它将为您提供数据库的所有列及其表。例如,您可以检查不需要更新整型列的列的数据类型 然后使用动态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>)
复制结果并执行,就完成了。使用正确的xls可以更容易地中继和重新加载表