作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的表(sql server 2008)中有超过 30 列。列类型为 varchar(x)。我知道在每一列中,列值末尾都有两个额外的空格。如何对所有列使用 rtrim 函数并将此修改保存到现有表中?
编辑:有没有办法使用存储过程或游标来执行此操作,而无需手动声明所有列?
最佳答案
对于通用方法,您可以使用这样的脚本为给定的表生成语句(如果您有很多列,则很有用!):
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
这只会打印 SQL 语句。然后您可以复制并运行该语句,或者只是EXECUTE(@SQL)
。这尚未经过测试,因此请先在测试台上尝试一下:)
关于SQL Server : How to perform Rtrim on all varchar columns of a table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2552154/
我是一名优秀的程序员,十分优秀!