【发布时间】:2011-08-31 21:46:48
【问题描述】:
有一个简单的问题。
我首先选择一个数据集 INTO 临时表。
临时表的列中包含的数据,其中包含额外的空格。许多列都带有额外的空格。所以,我用谷歌搜索检查如何删除列中的所有空格。
找到这个解决方案SQL Server: How to perform Rtrim on all varchar columns of a table
但是,我尝试为临时表实现相同的功能,但它不能按原样工作,因为临时表是在不同的架构中创建的。
所以,我修改了相同的并尝试了。但没有运气。 有人能指出我哪里做错了吗?
代码如下:
DECLARE @Op NVARCHAR(1000)
DECLARE @table_name AS VARCHAR(300)
SET @table_name = (SELECT TOP 1 [name] FROM tempdb..sysobjects WHERE name LIKE '#tempFinalResults%')
SET @Op = ' UPDATE ' + @table_name + ' SET COLUMN_NAME = LTRIM(RTRIM(COLUMN_NAME)) FROM tempDB.information_Schema.Columns WHERE DATA_Type IN (''varchar'', ''char'', ''nchar'', ''nvarchar'')'
Exec sp_executesql @Op
Select * from #tempFinalResults
谢谢各位。欣赏它。
谢谢, 肖恩
【问题讨论】:
-
你需要
SELECT c.name FROM tempdb.sys.columns c WHERE object_id = object_id('tempdb..#tempFinalResults') -
插入数据的意义何在,然后 THEN 修剪它。为什么不在插件上修剪它?
INSERT INTO #temp SELECT LTRIM(RTRIM(field1)), LTRIM(RTRIM(field2))...
标签: sql trim temp-tables