我正在尝试编写VB.Net代码,以编程方式备份由ClickOnce部署的LocalDB,使用SQL中的BACKUP DATABASE命令。我的要求是根据用户请求备份数据库(按下按钮)。
由于ClickOnce部署中的mdf文件位于模糊路径(appdata / app / version / data / obfuscated_folder_names / database_name.mdf),因此无法将数据库名称传递给备份命令。
当我在
中将数据库名称作为字符串传递时BACKUP DATABASE obfuscated_string TO DISK=@destination,
我收到一条错误消息,指出标识符太长(超过128个字符)。
或者,当我将数据库名称作为varchar(max)参数传递时,
BACKUP DATABASE @FullPathofDatabase TO DISK=@destination
我收到一条错误消息,指出数据库不存在,这是因为sys.databases中的实际数据库名称是sys.master_files中physical_name的截断部分。
是否存在备份LocalDB的方法,如果有的话或者是设计中的这种行为?