如何查找SQL Server数据库,包含值'aaa'和'bbb'的列(我不知道名称)的所有记录。我会从此列中删除这些值。不要仅删除列,值。
答案 0 :(得分:1)
这可以限制使用......
SELECT 'Starting'
WHILE @@ROWCOUNT <> 0
UPDATE MyTable
SET
myValue1 = CASE
WHEN @columname = 'myValue1'
THEN REPLACE(REPLACE(myValue1, 'bbb', ''), 'aaa', '')
ELSE myValue1
END,
myValue2 = CASE
WHEN @columname = 'myValue2'
THEN REPLACE(REPLACE(myValue2, 'bbb', ''), 'aaa', '')
ELSE myValue2
END,
myValue3 = CASE
WHEN @columname = 'myValue3'
THEN REPLACE(REPLACE(myValue3, 'bbb', ''), 'aaa', '')
ELSE myValue3
END,
...
答案 1 :(得分:0)
您可能需要编写一个T-SQL块(或过程),该块接受列参数作为varchar,并创建一个动态更新(或删除)SQL语句,您需要通过sp_executesql来执行此操作。
sp_executesql('Update MyTable Set ' + @Your_column + ' = <the logic goes here>');
作为替代方案,您可以查询元数据并获取游标中所述表的所有列,然后您可以遍历游标并执行上述语句以清理表。
Select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS Where TABLE_NAME='MyTable';
在上述任何一种情况下,您都必须使用T-SQL块来实现此目标。