June 18, 2008 at 12:19 am
Comments posted to this topic are about the item Using SQL Management Objects to create and restore SQL Databases.
June 18, 2008 at 3:41 pm
Good article. Where can I get a list of all the objects, properties, and methods?
We recently installed a new drive on one of our SQL boxes. The boss was moving databases by detach, move file, reattach. I showed him a trick for moving files to new location using T-SQL in 4 lines (found it here). He got out a text editor and whipped up a script to do the rest. I was thinking about a "point-and-click" program to do the mundane sort of thing like that. Maybe these SMO objects could be the answer rather than my usual trick of writing Dot Net code that generates T-SQL statements and shoving them at the server.
ATBCharles Kincaid
June 19, 2008 at 12:48 am
Nice article ........
June 19, 2008 at 2:21 am
- Nice intro to SMO for this purpose.
- Keep in mind, you have to inspect the .bak files content. They may contain more than one backup.
- You can even perform point in time restores using smo
If you add default location registry keys for your SQLInstance, you can even extract this info to automate your procedure.
-- ALZDBA
-- Add default Data- and LogFile locations
--
USE [master]
GO
Declare @DataPath NVarchar(2000)
Declare @LogPath NVarchar(2000)
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', @DataPath OUTPUT
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', @LogPath OUTPUT
print @DataPath
print @LogPath
-- activate to install
If 0 = 1
begin
-- Adjust !!!
Select @DataPath = N'D:\MSSQL.1\MSSQL\Data'-- Aanpassen !
, @LogPath = N'D:\MSSQL.1\MSSQL\Data'-- Aanpassen !
/* SQL2005 always use xp_instance_regwrite */
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', REG_SZ, @DataPath
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', REG_SZ, @LogPath
end
/*
-- find default backup directory (elaborate to find datadirectory
-- activate cmdshell if disabled
EXEC sys.sp_configure N'show advanced options', N'1'
RECONFIGURE WITH OVERRIDE
declare @CmdShellSettingBefore table (cfgname varchar(128), minimum varchar(128), maximum varchar(128), config_value varchar(128), runvalue varchar(128))
insert into @CmdShellSettingBefore
EXEC sys.sp_configure N'xp_cmdshell'
if exists(select * from @CmdShellSettingBefore where cfgname = 'xp_cmdshell' and runvalue = '0')
begin
EXEC sys.sp_configure N'xp_cmdshell', N'1'
RECONFIGURE WITH OVERRIDE
end
-- Get Default-path
declare @DefaultBackupDirectory nvarchar(512)
exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer',N'BackupDirectory', @DefaultBackupDirectory OUTPUT
Print 'Default BackupDirectory for instance [' + @@servername + '] = ' + @DefaultBackupDirectory
-- disable cmdshell if it was originaly disabled
if exists(select * from @CmdShellSettingBefore where cfgname = 'xp_cmdshell' and runvalue = '0')
begin
EXEC sys.sp_configure N'xp_cmdshell', N'0'
RECONFIGURE WITH OVERRIDE
end
*/
Johan
Learn to play, play to learn !
Dont drive faster than your guardian angel can fly ...
but keeping both feet on the ground wont get you anywhere :w00t:
- How to post Performance Problems
- How to post data/code to get the best help[/url]
- How to prevent a sore throat after hours of presenting ppt
press F1 for solution, press shift+F1 for urgent solution 😀
Need a bit of Powershell? How about this
Who am I ? Sometimes this is me but most of the time this is me
Viewing 4 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply