Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Вниз

Программное востановление БД   Найти похожие ветки 

 
NotGooDP ©   (2006-09-11 16:50) [0]

Всем привет!
Подскажите пожалуйста каким образом можно восстановить программно БД на msSQL
мой код

Restore DataBase SPZ_Database From DISK = путь к файлу


Старый коннект надо закрыть, но тогда каким образом или где мне указать сам сервер куда надо восстанавливать БД

использую для коннекта и запросов ADO механизмы.

Заранее спасибо!


 
AlexWlad ©   (2006-09-11 20:11) [1]

Сервер определяется в строке подключения (ConnectionString).
Далее. Для восстановления базы необходимое условие - отсутствие коннектов (даже закрытых, но еще висящих), поэтому лучше в строке подключения указывать Master или любую другую базу. Ну и конечно BOL, соотв. раздел прочитать очень внимательно.


 
Ega23 ©   (2006-09-12 09:17) [2]

Вот кусок SP на восстановление. Писалось давно, что делает - уже не помню. Выполнять в контексте master

--=================== ВОССТАНОВЛЕНИЕ БД
IF @ACTNAM="RESTORE"
BEGIN
set @sqls="RESTORE FILELISTONLY FROM DISK =""+@bakupfile+"""
create table ##Bakfiles(LogicalName nvarchar(128) null,PhysicalName nvarchar(260) null,Type char(1)null ,
                       FileGroupName nvarchar(128) null,Size numeric(20,0) null,MaxSize numeric(20,0) null
                       )
insert ##Bakfiles exec (@sqls)
set @cnt=0 set @bakmdf="" set @bakndf=""
declare Cur cursor local static for  select cast(LogicalName  as varchar(8000)) from ##Bakfiles where type="D"
   open Cur
   while 0 = 0
   Begin
    fetch next from Cur into  @ss
     if @@fetch_status <> 0 BREAK              
     set @cnt=@cnt+1
     if @cnt=1 set @bakmdf=@ss
     if @cnt=2 set @bakndf=@ss
    end
   close Cur
  deallocate Cur -- was for 1  select top 1 @bakmdf=LogicalName from ##Bakfiles where type="D"

select top 1 @bakldf=LogicalName from ##Bakfiles where type="L"
if @Debug<>-1 select * from ##Bakfiles
drop table ##Bakfiles

create table ##Dbfiles(name sysname null,fileid smallint null,filename nchar(260) null,filegroup sysname null,
                     size nvarchar(18) null,maxsize nvarchar(18) null,growth nvarchar(18) null, usage varchar(9) null )
set @sqls="insert ##Dbfiles exec "+@dbname+"..sp_helpfile"
exec (@sqls)
if @Debug<>-1 select * from ##Dbfiles
set @mdf=""  set @ldf="" set @ndf=""
select @mdf=ltrim(rtrim(filename)) from ##Dbfiles where fileid =1
select @ndf=ltrim(rtrim(filename)) from ##Dbfiles where fileid <>1 and not (filegroup is null)
select @ldf=ltrim(rtrim(filename)) from ##Dbfiles where usage like ("%log%")

if @Debug<>-1 select * from ##Dbfiles
drop table  ##Dbfiles

set @sqls=""
Print "Restoring base :"+ @dbname +" from "+ @bakupfile
Print "Restoring data :"+ @bakmdf +" --> "+ @mdf
if (@ndf<>"")and(@bakndf<>"")
begin
  Print "Restoring data1:"+ @bakndf +" --> "+ @ndf
  set @sqls="     MOVE ""+@bakndf+"" TO "+"""+@ndf+"","
end
Print "Restoring log :"+ @bakldf +" --> "+ @ldf

set @sqls="
RESTORE DATABASE "+@dbname+"   FROM DISK = ""+@bakupfile+""
   WITH MOVE ""+@bakmdf+"" TO "+"""+@mdf+"","+
        @sqls +
  "     MOVE ""+@bakldf+"" TO "+"""+@ldf+"","+
  "      REPLACE "
if @debug<>-1 print @sqls
-- goto Fin
-- exec S_BACKUP @ACTNAM="RESTORE", @debug=1,@dbname="tete",@bakupfile="D:\temp\knps-21-Oct-2002.BAK"
exec (@sqls)
if @@error<>0 begin print "RESTORE ERROR !!!" goto fin end
-- Установить Collation !!
exec S_BACKUP @ACTNAM="COLLATE",@dbname=@dbname,@COLLATEnam=@defCOLLATEnam,@debug=@debug
-- goto bind
goto Fin
END


 
NotGooDP ©   (2006-09-12 10:52) [3]

спасибо, все заработало



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.048 c
15-1161764749
Nic
2006-10-25 12:25
2006.11.12
Программа "Camp America"


2-1161993452
Free_Breeze
2006-10-28 03:57
2006.11.12
Помогите получить текст из определенного фрейма


2-1161942939
term1t
2006-10-27 13:55
2006.11.12
statement too long


2-1161802535
Батя
2006-10-25 22:55
2006.11.12
как вставить в memo текст


15-1161325548
КаПиБаРа
2006-10-20 10:25
2006.11.12
Влияют ли планеты на характер человека?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский