April 13, 2012

sp_add_log_shipping_primary_secondary (Transact-SQL MetaData) Definition

Please note: that the following source code is provided and copyrighted by Microsoft and is for educational purpose only.
The meta data is from an SQL 2012 Server.

I have posted alot more, find the whole list here.

Goto Definition or MetaData

Definition:

sys.sp_add_log_shipping_primary_secondary(nvarchar @primary_database
, nvarchar @secondary_server
, nvarchar @secondary_database
, bit @overwrite)

MetaData:

 create procedure sys.sp_add_log_shipping_primary_secondary   
(
@primary_database sysname
,@secondary_server sysname
,@secondary_database sysname
,@overwrite bit = 0
)
as
begin
set nocount on
declare @retcode int
,@primary_id uniqueidentifier

--
-- security check
--
exec @retcode = sys.sp_MSlogshippingsysadmincheck
if (@retcode != 0 or @@error != 0)
return 1
--
-- must be invoked from master db
--
if (db_name() != N'master')
begin
raiserror(5001, 16,-1)
return 1
end

--
-- Primary database should exist
--
select @primary_id = primary_id
from msdb.dbo.log_shipping_primary_databases
where primary_database = @primary_database
if (@primary_id is null)
begin
raiserror(32010, 10, 4, @primary_database)
return 0
end

--
-- Parameter Check: @secondary_server
--
if @secondary_server is null or @secondary_server=N''
begin
raiserror (32052, 16, -1, N'@secondary_server')
return 1
end

--
-- Parameter Check: @secondary_server
--
if @secondary_database is null or @secondary_database=N''
begin
raiserror (32052, 16, -1, N'@secondary_database')
return 1
end

--
-- secondary should not exist already
--
if exists (select * from msdb.dbo.log_shipping_primary_secondaries
where primary_id = @primary_id
and secondary_server = upper(@secondary_server)
and secondary_database = @secondary_database)
begin
if (@overwrite = 0)
begin
raiserror(32012, 10, 1, @secondary_server, @secondary_database, @primary_database)
return 1
end
else
begin
delete msdb.dbo.log_shipping_primary_secondaries
where primary_id = @primary_id
and secondary_server = upper(@secondary_server)
and secondary_database = @secondary_database
end
end
--
-- add a row in msdb.dbo.log_shipping_primary_secondaries
--
insert into msdb.dbo.log_shipping_primary_secondaries (
primary_id, secondary_server, secondary_database)
values (@primary_id, upper(@secondary_server), @secondary_database)
if (@@error != 0)
return 1
--
-- all done
--
return 0
end

No comments:

Post a Comment

Total Pageviews