62 lines
1.9 KiB
Transact-SQL
62 lines
1.9 KiB
Transact-SQL
USE [distribution]
|
|
|
|
DECLARE @hyperscale NVARCHAR(500)='sql-triapharmamaprod-sqlserver01.database.windows.net';
|
|
DECLARE @tpl_archive NVARCHAR(MAX)='bcp.exe @tbl@ out d:\tsc\@tbl_file@_@host@.bcp -S @fqdn@ -T -d arizona -n';
|
|
DECLARE @tpl_rest NVARCHAR(MAX)='bcp.exe @dst@.@tbl@ in d:\tsc\@tbl_file@_@host@.bcp -S @hyperscale@ -T -d pharmacy -n';
|
|
DECLARE @tbl_full NVARCHAR(500);
|
|
DECLARE @tbl_only NVARCHAR(500);
|
|
DECLARE @tbl_file NVARCHAR(500);
|
|
DECLARE @dst_schema NVARCHAR(100);
|
|
DECLARE @fqdn NVARCHAR(500);
|
|
DECLARE @host NVARCHAR(255);
|
|
DECLARE @cmd TABLE(
|
|
id INT IDENTITY
|
|
, fqdn NVARCHAR(500) NOT NULL
|
|
, tbl_name NVARCHAR(500) NOT NULL
|
|
, cmd_archive NVARCHAR(MAX) NULL
|
|
, cmd_restore NVARCHAR(MAX) NULL
|
|
);
|
|
|
|
SELECT
|
|
@host = LOWER(SUBSTRING(name,0,CHARINDEX('\',name)))
|
|
,@dst_schema = LOWER(CONCAT(SUBSTRING(name, 3, 6),'_dbo'))
|
|
FROM sys.[servers] AS [s]
|
|
WHERE [s].[server_id]=0;
|
|
|
|
SELECT @fqdn = CONCAT(@host,'.centralinfra.net,1433');
|
|
|
|
DECLARE csr_articles CURSOR FAST_FORWARD READ_ONLY FOR
|
|
SELECT CONCAT([ms].[source_owner],'.',[ms].[source_object]) AS tbl, [ms].[source_object] AS tbl_only
|
|
FROM [dbo].[MSarticles] AS [ms]
|
|
WHERE [ms].[publisher_db]='Arizona'
|
|
|
|
OPEN csr_articles
|
|
|
|
FETCH NEXT FROM csr_articles INTO @tbl_full, @tbl_only
|
|
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
SET @tbl_file = REPLACE(@tbl_full,'.','_');
|
|
INSERT INTO @cmd (
|
|
[fqdn],
|
|
[tbl_name],
|
|
[cmd_archive],
|
|
[cmd_restore]
|
|
)
|
|
SELECT
|
|
@fqdn-- fqdn
|
|
,@tbl_full-- tbl_name
|
|
,REPLACE(REPLACE(REPLACE(REPLACE(@tpl_archive, '@tbl@', @tbl_full),'@tbl_file@',@tbl_file),'@host@',@host),'@fqdn@', @fqdn)
|
|
,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@tpl_rest, '@tbl@', @tbl_only),'@tbl_file@',@tbl_file),'@host@',@host),'@hyperscale@', @hyperscale), '@dst@',@dst_schema)
|
|
;
|
|
|
|
|
|
FETCH NEXT FROM csr_articles INTO @tbl_full, @tbl_only
|
|
END
|
|
|
|
CLOSE csr_articles
|
|
DEALLOCATE csr_articles
|
|
|
|
SELECT *
|
|
FROM @cmd AS [c]
|