一个关于存储过程和INSERT INTO OPENROWSET()的问题,高手来看,高分求助!
我写了一个存储过程,功能是实现从SQL SERVER 数据库备份一些表到ACCESS数据库,两个数据库都在远程就算机上,因为服务器上放了多个用户的数据库,所以备份的时候需要根据数据库的名称生成对应的文件夹。我在服务器的C盘下放了一个BAK文件夹,文件夹下有一个事先做好的备份的ACCESS的数据库模板,里面是一些空白表格。我用第一种方法如下:先根据数据库的名称在BAK下生成一个对应名字的文件夹,然后把BAK下的数据库模板拷贝到生成的文件夹下,接着开始写数据库,用INSERT INTO OPENROWSET('Microsoft.Jet.oledb.4.0','c:\bak\dbname\*.mdb','admin','',select 列 from A表) select * from sql表。写完以精确到妙的时间作为文件名重命名文件。这种方法的问题是,由于服务器的名字是不确定的,所以,中间的路径名是个变量,我用了个变量@ls_addr,但是该语句根本就不识别变量;后来我用了第二种方法,先在BAK下建一个TEMP文件夹,在这里面也事先放一个数据库模板,然后每次备份的时候,先把 模板拷贝到TEMP下覆盖原来的文件,然后写数据库,然后把写好的数据库文件,拷贝到生成的数据库名对应的文件夹下,重命名.这种方法可以不用变量就实现备份,但是问题是,因为用多个库在一个服务器上,这就会出现多个用户同时备份,同时往同一个数据库文件,就是TEMP文件夹下的那个文件写数据,这样也会出现严重的问题.
各位高手帮帮忙拉,看我这个问题怎么可以解决,解决成功赠100分!谢谢!