Puisque vous utilisez SQL Server, vous pouvez récupérer les noms de toutes les colonnes sur une table en utilisant la INFORMATION_SCHEMA, par exemple
select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'yourTable'
Vous pouvez ensuite utiliser un curseur pour itérer sur chaque nom de colonne, construire une SQL dynamique et exécuter ce en utilisant « exec sp_executesql ».
Voici ma solution:
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
Que SGBDR est-ce pour? –
Voulez-vous * sélectionner * chaque enregistrement sans les guillemets ou * mettre à jour * chaque enregistrement pour ne pas avoir de guillemets? –
MS SQL Server 2008. Je veux sélectionner chaque enregistrement sans les guillemets. – AzaRoth91