--批处理是可以的
master.dbo.xp_cmdshell 'osql -U 用户名 -P 密码 -i c:\**1.sql'
master.dbo.xp_cmdshell 'osql -U 用户名 -P 密码 -i c:\**2.sql'
master.dbo.xp_cmdshell 'osql -U 用户名 -P 密码 -i c:\**3.sql'
master.dbo.xp_cmdshell 'osql -U 用户名 -P 密码 -i c:\**4.sql'--不建议这么做,数据量大的时候效率很低
--建议吧数据库备份后,恢复的方法。
具体操作如下:
--建库
IF EXISTS (SELECT * FROM MASTER..sysdatabases WHERE NAME=N'数据库 ') 
DROP DATABASE 数据库  
CREATE DATABASE 数据库
--恢复declare @s as varchar(8000)
set @s=' use master    
declare @Data_Path as varchar(100),@Log_Path as varchar(100)   
   select @Data_Path=ltrim(rtrim(filename)) from 数据库..sysfiles where charindex(''MDF'',filename)>0  
select @Log_Path=ltrim(rtrim(filename)) from 数据库..sysfiles where charindex(''LDF'',filename)>0   
RESTORE DATABASE 数据库 FROM DISK = ''c:\数据库.bak'' with replace, move ''数据库_Data'' to @Data_Path, 
move ''数据库_Log'' to @Log_Path '

解决方案 »

  1.   

    --批处理是可以的
    master.dbo.xp_cmdshell 'osql -U 用户名 -P 密码 -i c:\**1.sql'
    master.dbo.xp_cmdshell 'osql -U 用户名 -P 密码 -i c:\**2.sql'
    master.dbo.xp_cmdshell 'osql -U 用户名 -P 密码 -i c:\**3.sql'
    master.dbo.xp_cmdshell 'osql -U 用户名 -P 密码 -i c:\**4.sql'--不建议这么做,数据量大的时候效率很低
    --建议吧数据库备份后,恢复的方法。
    具体操作如下:
    --建库
    IF EXISTS (SELECT * FROM MASTER..sysdatabases WHERE NAME=N'数据库 ') 
    DROP DATABASE 数据库  
    CREATE DATABASE 数据库
    --恢复declare @s as varchar(8000)
    set @s=' use master    
    declare @Data_Path as varchar(100),@Log_Path as varchar(100)   
       select @Data_Path=ltrim(rtrim(filename)) from 数据库..sysfiles where charindex(''MDF'',filename)>0  
    select @Log_Path=ltrim(rtrim(filename)) from 数据库..sysfiles where charindex(''LDF'',filename)>0   
    RESTORE DATABASE 数据库 FROM DISK = ''c:\数据库.bak'' with replace, move ''数据库_Data'' to @Data_Path, 
    move ''数据库_Log'' to @Log_Path '