1

我按照这个答案中的例子Get extension of a file using SQL? 从文件夹中的文件列表中提取扩展名。它工作得很好,但会增加 6 个额外的空间。我试过添加一个 rtrim,但这并没有帮助,除非我把它放在错误的位置。

create table images
(
id int IDENTITY(1,1) PRIMARY KEY,
PartNo char(10),
aFileName char(255),
extension char(10),
aFile char(255),
depth int,
isFile bit
)

insert images (aFile, depth, isFile)
EXEC xp_dirtree 'C:\Program Files\e-Con Solutions\e-Con 2012 R2\Web\images\coverpools', 10, 1

这将返回文件名,例如 010001.eprt

update images   
SET extension = rtrim(REVERSE(
                       left(rtrim(REVERSE(aFile)), 
                       case when CHARINDEX('.', REVERSE(aFile) ) = 0 then LEN(REVERSE(aFile)) 
                       else CHARINDEX('.', REVERSE(aFile))-1 end)
                       ))

这是返回扩展 eprt###### 的代码

4

1 回答 1

0

正如@melpomene 在评论中指出的那样,您需要更改表定义并将扩展列从转换extension char(10)为。extension varchar(10)

于 2017-01-31T22:42:44.500 回答