Поскольку вы используете SQL Server, вы можете получить имена всех столбцов таблицы, используя INFORMATION_SCHEMA, например,
select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'yourTable'
Затем вы можете использовать курсор для итерации по каждому имени столбца, построить некоторый динамический SQL и выполнить его, используя exec sp_executesql.
Вот мое решение:
declare @isString bit
declare @tableName nvarchar(256) = N'MyTableName'
declare @columnName nvarchar(max)
declare @sql nvarchar(max) = ''
declare c cursor local forward_only read_only for
select column_name, case when CHARACTER_SET_NAME is null then 0 else 1 end as IsString
from information_schema.COLUMNS WHERE table_name = @tableName
open c
fetch next from c into @columnName, @isString
set @sql = N'select '
declare @first bit = 1
while @@FETCH_STATUS = 0
begin
select @columnName
if @isString <> 0
begin
if @first = 0
begin
set @sql = @sql + ', '
end
set @sql = @sql + N'REPLACE(' + @columnName + ', ''"'', '''')'
set @first = 0
end
fetch next from c into @columnName, @isString
end
close c
deallocate c
set @sql = @sql + ' from ' + @tableName
exec sp_executesql @sql