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个字符长的字段时,这将导致错误.
如果列是CHAR(20),MattMitchell的答案是正确的,但如果它是VARCHAR(20)并且没有明确输入空格则不是真的.
如果你在没有RTRIM函数的CHAR字段上尝试它,你将得到"字符串或二进制数据将被截断"错误.