Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > вставка запроса


Автор: Neymexa 5.4.2010, 13:39
есть код 

Код

RESTORE DATABASE test 
FROM  
DISK = N'"D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\test"
WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 10

и есть запрос 
select max(backup_date) from temp_table
он возвращает test_backup_2010_03_30_164801_3287624.bak

как сделать вот так
DISK = N'"D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\test\test_backup_2010_03_30_164801_3287624.bak" 

???

Автор: Akina 5.4.2010, 13:47
Получи это имя в переменную (char, nchar) и используй её в DISK=@variable

Автор: Neymexa 5.4.2010, 13:56
alter proc restore_auto
 @spisok_bakups varchar(100)
as
insert  temp_table exec xp_cmdshell 'dir "D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\test" /B' 

select max(backup_date) from temp_table=@spisok_bakups
go
ругается на не правильный синтаксис.что то я туплю

это пока оставим
RESTORE DATABASE test 
FROM  
DISK = N'"D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\test"+"\"+"select max(backup_date) from temp_table"'
WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 10
go
delete from temp_table

Автор: boevik 5.4.2010, 21:57
здесь:
Код

select @spisok_bakups=max(backup_date) from temp_table


а дальше, что типо следующего кода:
Код

RESTORE DATABASE test 
FROM  
DISK = N'"D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\test\'+@spisok_bakups+'"'
WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 10

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)