我正在尝试编写一个脚本来获取文件名,并从名称中获取数据库名称。
MSSQLNET_acap_439_FULL_20131117_020001.bak
这就是它的样子,我希望acap_439
部分作为数据库名称。
字符串有点像这样,但不完全是我要找的东西。我没有做很多SQL工作作为网络人员,所以我迷路了。
select @dbName = left(@filename,datalength(@filename) - patindex('%_bd_%',reverse(@filename))-3)
select @dbName = left(@filename,datalength(@filename) - patindex('%_LLUF_%',reverse(@filename))-3)
只是不确定去哪里,我相信有人可以看看这个并说bam,这就是你做的。
感谢您的帮助!
答案 0 :(得分:0)
规则究竟是什么?你需要砍掉最右边的25个字符,最左边的9个字符吗?
我无法记住SQL Server中的LENGTH或LEN,但这会给你你想要的东西吗?
set @dbname = LEFT(@filename,LEN(@filename) - 25)
set @dbname = RIGHT(@dbname,LEN(@dbname) - 9)
(分两步完成以避免错综复杂的嵌套函数)