atr*_*lla 19 sql sql-server string sql-server-2008
我的表中有超过30列(sql server 2008).列类型为varchar(x).我知道在每列中,列值末尾有两个额外的空格.如何对所有列使用rtrim函数并将此修改保存到此现有表中?
编辑:有没有办法使用存储过程或游标,我不必手动声明所有列?
Ada*_*Dev 33
对于通用方法,您可以使用这样的脚本为您生成给定表的语句(如果您有许多列,则非常有用):
DECLARE @SQL VARCHAR(MAX)
DECLARE @TableName NVARCHAR(128)
SET @TableName = 'YourTableName'
SELECT @SQL = COALESCE(@SQL + ',[', '[') +
COLUMN_NAME + ']=RTRIM([' + COLUMN_NAME + '])'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName
AND DATA_TYPE = 'varchar'
SET @SQL = 'UPDATE [' + @TableName + '] SET ' + @SQL
PRINT @SQL
Run Code Online (Sandbox Code Playgroud)
这只会打印出SQL语句.然后你可以复制+运行语句,或者只是EXECUTE(@SQL).这是未经测试的,所以只需先在测试表上试试:)
Mar*_*tos 20
UPDATE xxx
SET col1 = RTRIM(col1),
col2 = RTRIM(col2),
col3 = RTRIM(col3),
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28076 次 |
| 最近记录: |