SP0_AddLinkedServer.sql [创建Linked SQL Server ]

USE [master]
GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SP_Temp_AddLinkedServer]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure dbo.SP_Temp_AddLinkedServer;
GO create procedure dbo.SP_Temp_AddLinkedServer
@@cloudServerIP nvarchar(250),
@@cloudServerSA nvarchar(50),
@@cloudSAPWD nvarchar(50)
AS
begin IF EXISTS(SELECT * FROM sys.servers WHERE name = @@cloudServerIP)
EXEC master.sys.sp_dropserver @@cloudServerIP,'droplogins' declare @TargetServer nvarchar(50)
declare @strcloudServerIP nvarchar(50)
declare @strcloudServerSA nvarchar(50)
declare @strcloudSAPWD nvarchar(50) set @strcloudServerIP = @@cloudServerIP
set @strcloudServerSA = @@cloudServerSA
set @strcloudSAPWD = @@cloudSAPWD
EXEC master.dbo.sp_addlinkedserver @server = @strcloudServerIP, @srvproduct=N'SQL Server'
/* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=@strcloudServerIP,@useself=N'False',@locallogin=NULL,@rmtuser=@strcloudServerSA ,@rmtpassword=@strcloudSAPWD EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'collation compatible', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'data access', @optvalue=N'true' EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'dist', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'pub', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'rpc', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'rpc out', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'sub', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'connect timeout', @optvalue=N'' EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'collation name', @optvalue=null EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'lazy schema validation', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'query timeout', @optvalue=N'' EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'use remote collation', @optvalue=N'true' EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'remote proc transaction promotion', @optvalue=N'true' end --use master exec SP_Temp_AddLinkedServer '10.1.12.110','sa','Sequoia2012'

SP1_LoadTablesName.sql [SQL读取文本文件,并插入表内。]

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SP_Temp_GetCompareNameList]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

drop procedure dbo.SP_Temp_GetCompareNameList;
GO create procedure dbo.SP_Temp_GetCompareNameList
@@filePath varchar(250)
--@@totalAmount numeric(15,3)=0 output
AS BEGIN
declare @TableNameConfigureFile varchar(250)
declare @SQLExeStr varchar(300) set @TableNameConfigureFile = @@filePath /* Remove temp table */
if object_id('Temp_Table_CompareTableName') is not null
Begin drop table Temp_Table_CompareTableName End exec ('CREATE TABLE Temp_Table_CompareTableName(strName varchar(100))') set @SQLExeStr = 'bulk INSERT Temp_Table_CompareTableName
from ' + '''' + @TableNameConfigureFile + ''''+
' with(
FIELDTERMINATOR = ''\t'',
ROWTERMINATOR = ''\n''
) ' exec (@SQLExeStr) --select *from #CompareTableName
--select *from tempdb..#CompareTableName
--print @SQLExeStr
-- exec SP_Temp_GetCompareNameList 'C:\ComparedTableList.txt'
--select *from CompareTableName
end

SP2_GetTableColumns.sql [调用系统表功能,读取某一表的所有列信息。]

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SP_Temp_GetTableColumns]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

drop procedure dbo.SP_Temp_GetTableColumns;
GO create procedure dbo.SP_Temp_GetTableColumns
@@tableName nvarchar(250) AS BEGIN
declare @strTableName varchar(250)
declare @SQLExeStr varchar(4000) set @strTableName = @@tableName /* Remove temp table */
if object_id('Temp_Table_TableColumns') is not null
Begin
drop table Temp_Table_TableColumns
End
set @SQLExeStr = 'Select name into Temp_Table_TableColumns from SysColumns Where id=Object_Id(''' + @strTableName + ''')
and name <> ''AuditTimestamp''
and name <> ''CreatedTime''
and name <> ''InstallTime''
and name <> ''StartTime''
and name <> ''ModificationTime''
and name <> ''LockTime''
and name <> ''LastActivityDate''
and name <> ''MasterPageImage''
and name <> ''LastLoginDate''
'
--print @SQLExeStr
exec (@SQLExeStr)
end --exec SP_Temp_GetTableColumns 'dbo.RexStatementTransaction'
--select *from TableColumns

SP3_CompareTwoTable.sql [ 使用SQL Except 语句,比较同结构表内容 ]

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SP_Temp_CompareTables]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure dbo.SP_Temp_CompareTables;
GO create procedure dbo.SP_Temp_CompareTables
@@compareTableName nvarchar(250),
@@compareRes int output,
@@cloudServerIP nvarchar(50) ,
@@cloudDBName nvarchar(50) AS BEGIN declare @TableName nvarchar(250)
declare @SQLExeStr nvarchar(300)
declare @strSQLLoadTableColumns nvarchar(300)
declare @strcloudServerIP nvarchar(300)
declare @strcloudDBName nvarchar(300) declare @selColumns nvarchar(3000)
declare @finalSelColumns nvarchar(3000)
DECLARE @count int -- column numbers
DECLARE @testResult int /*Test Result flag*/ set @TableName = @@compareTableName
set @strcloudServerIP = @@cloudServerIP
set @strcloudDBName = @@cloudDBName
set @testResult = 1 /*Default Value as false*/ /*Print out the info of comparing table*/
select dbo.FN_Temp_LogInfo( 'Testing The Table:' +@TableName) set @strSQLLoadTableColumns = 'exec SP_Temp_GetTableColumns ' + '''' + @TableName + ''''
exec(@strSQLLoadTableColumns) -- call SP for insert the table's column to our test using table
--SELECT @count= COUNT(1) FROM Temp_Table_TableColumns
select @selColumns = isnull(@selColumns,'') + ',' + name from Temp_Table_TableColumns where name=name
--print @selColumns
set @finalSelColumns = SubString(@selColumns,2,LEN(@selColumns)) BEGIN
declare @sqlCloudQueryStr nvarchar(3000)
declare @sqlGroundQueryStr nvarchar(3000)
declare @finalSqlExec nvarchar(4000)
declare @withStart nvarchar(100)
declare @withEnd nvarchar(100) set @withStart = 'select @a=count(1)' + ' from ('
set @withEnd = ')T'
/* Get the final exec SQL compare statement*/
set @sqlGroundQueryStr = ' select ' + @finalSelColumns + ' from ' + @TableName + ' except '
set @sqlCloudQueryStr = 'select *from OPENQUERY( [' + @strcloudServerIP + '], ''select ' + @finalSelColumns + ' from ' + @strcloudDBName +'.' + @TableName + ''''+ ')'
set @finalSqlExec = @withStart + @sqlGroundQueryStr + @sqlCloudQueryStr + @withEnd declare @num int
BEGIN TRY
EXECUTE sp_executesql @finalSqlExec,N'@a int output',@num output IF(@num > 0)
Begin
set @testResult = 1
/*Set the case info*/
select dbo.FN_Temp_LogInfo(' >>>>>> Comparing Exception <<<<<<' )
select dbo.FN_Temp_LogInfo(' Exception Table:' + @TableName )
select dbo.FN_Temp_LogInfo(' Exception Query:' + @finalSqlExec)
select dbo.FN_Temp_LogInfo(' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^')
End
else
set @testResult = 0
End TRY
BEGIN CATCH
set @testResult = 1
select dbo.FN_Temp_LogInfo(' >>>>>> SQL Execution Exception <<<<<<' )
select dbo.FN_Temp_LogInfo(' Exception Table:' + @TableName )
select dbo.FN_Temp_LogInfo(' Exception Query:' + @finalSqlExec)
select dbo.FN_Temp_LogInfo(' SQL Error:' + ERROR_MESSAGE())
select dbo.FN_Temp_LogInfo(' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^')
End Catch
END set @@compareRes = @testResult
/*Set the case result*/
select dbo.[FN_Temp_LogRes](@TableName,@testResult)
return @@compareRes
end --declare @iTemp int
--exec SP_Temp_CompareTables 'ApxAdaptorDb101.APXAdaptor.Session', @iTemp output,'10.1.12.110', 'ApxAdaptorDb101'

最新文章

  1. 应用程序框架实战十四:DDD分层架构之领域实体(基础篇)
  2. 2015baidu复赛2 连接的管道(mst &amp;&amp; 优先队列prim)
  3. ios开发-载入viewcontroller的几种方式
  4. poj2208Pyramids(四面体面积--公式)
  5. Planning for a period of time
  6. hdoj 5389 Zero Escape
  7. Oracle数据类型对应Java类型
  8. T-SQL索引
  9. 查看linux系统版本是32位还是64位
  10. HTTP协议缓存策略深入详解之ETAG妙用
  11. CSS3弹性伸缩布局(下)——flex布局
  12. python3解决 json.dumps中文乱码
  13. 50.Linux-分析ifconfig到内核的调用过程,实现内核启机自动设MAC地址(原)
  14. 为服务器设置SSL证书,配置Https协议
  15. 第一次安装tomcat报错,出现failed to install tomcat8 service错误
  16. webStorm2018激活的方法
  17. [LeetCode] 295. Find Median from Data Stream ☆☆☆☆☆(数据流中获取中位数)
  18. BT656与BT1120的区别
  19. java-pageEncoding与contentType的区别
  20. Thymeleaf系列五 迭代,if,switch语法

热门文章

  1. Mac adb 安装
  2. 获取和设置HTML标签中的数据
  3. 使用Zend studio+WAMP来调试Wordpress后台的PHP程序的一些非常关键的信息(原创)
  4. Rails 5 Test Prescriptions 第3章Test-Driven Rails
  5. 棋盘分割(二维区间DP)
  6. LeetCode 48
  7. js预解析相关知识总结以及一些好玩的面试题
  8. MD5加密源码!
  9. centos6.9使用yum安装mysql(简单粗暴,亲测有效)
  10. 将Gridview中的数据出到excel或word中