删除Microsoft SQL中所有列的换行符
我试图在将数据库导出到csv之前替换数据库所有列中的所有换行符 我可以让它工作,如果我指定列,但我有超过200个 适用于1列的示例:删除Microsoft SQL中所有列的换行符,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我试图在将数据库导出到csv之前替换数据库所有列中的所有换行符 我可以让它工作,如果我指定列,但我有超过200个 适用于1列的示例: SELECT replace( replace([Incident_Number],char(10),' '),char(13),' ') AS [Incident_Number] FROM [itsmwh].[dbo].[HELP_DESK]; 我怎样才能使它对我的表中的所有列都起作用?在这种情况下,您可以编写一个脚本来为您生成一个脚本 我
SELECT replace(
replace([Incident_Number],char(10),' '),char(13),' ') AS [Incident_Number]
FROM [itsmwh].[dbo].[HELP_DESK];
我怎样才能使它对我的表中的所有列都起作用?在这种情况下,您可以编写一个脚本来为您生成一个脚本 我会这样做
DECLARE @Sql NVARCHAR(MAX);
SELECT @Sql = STUFF((SELECT ', replace(replace(' + QUOTENAME(C.name)
+ ',char(10),'' ''),char(13),'' '') AS '+QUOTENAME(C.name) +' '
FROM sys.columns c
inner join sys.tables t ON t.[object_id] = c.[object_id]
inner join sys.schemas s ON s.[schema_id] = t.[schema_id]
Where t.name = 'TableName' --<-- Table Name
and s.name = 'SchemaName' --<-- Schema Name
FOR XML PATH('') , TYPE).value('.','NVARCHAR(MAX)'),1,1,'')
SET @Sql = 'SELECT ' + @Sql + ' FROM [itsmwh].[dbo].[HELP_DESK]; '
Exec sp_executesql @Sql
你也可以试试这个
DECLARE @tblName VARCHAR(20) = '[itsmwh].[dbo].[HELP_DESK]'
DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX)
SELECT @columns = COALESCE(@columns, 'REPLACE(REPLACE(') + '[' + COLUMN_NAME + '], CHAR(10), '' ''), CHAR(13), '' ''), REPLACE(REPLACE('
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @tblName
SET @sql = 'SELECT ' + LEFT(STUFF(@columns, LEN(@columns), 1, ''), LEN(STUFF(@columns, LEN(@columns), 1, '')) - LEN(', REPLACE(REPLACE')) + ' FROM ' + @tblName
EXEC(@sql)