使用T-SQL/MS-SQL将字符串附加到现有表格单元格的最简单方法是什么?

Mat*_*ell 10 sql t-sql sql-server

我有一个带有'filename'列的表.我最近在此列中执行了插入操作,但在我的仓促中忘记将文件扩展名附加到输入的所有文件名中.幸运的是,它们都是'.jpg'图像.

如何轻松更新这些插入字段的"文件名"列(假设我可以根据已知的id值选择最近的行)以包含".jpg"扩展名?

Mat*_*ell 26

解决方案是:

UPDATE tablename SET [filename] = RTRIM([filename]) + '.jpg' WHERE id > 50
Run Code Online (Sandbox Code Playgroud)

RTRIM是必需的因为其全部否则[文件名]列将被选择用于即字符串连接,如果它是一个varchar(20)柱和文件名是唯一的10个字母长则它仍然会选择那些10个字母,然后10个空格.当您尝试将20 + 3个字符放入20个字符长的字段时,这将导致错误.


sam*_*son 5

如果列是CHAR(20),MattMitchell的答案是正确的,但如果它是VARCHAR(20)并且没有明确输入空格则不是真的.

如果你在没有RTRIM函数的CHAR字段上尝试它,你将得到"字符串或二进制数据将被截断"错误.