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'

T-SQL 总结的更多相关文章

  1. 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目

    最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...

  2. SQL Server 大数据搬迁之文件组备份还原实战

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...

  3. Sql Server系列:分区表操作

    1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...

  4. SQL Server中的高可用性(2)----文件与文件组

        在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...

  5. EntityFramework Core Raw SQL

    前言 本节我们来讲讲EF Core中的原始查询,目前在项目中对于简单的查询直接通过EF就可以解决,但是涉及到多表查询时为了一步到位就采用了原始查询的方式进行.下面我们一起来看看. EntityFram ...

  6. 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...

  7. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  8. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...

  9. 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)

    从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  10. SQL Server on Linux 理由浅析

    SQL Server on Linux 理由浅析 今天的爆炸性新闻<SQL Server on Linux>基本上在各大科技媒体上刷屏了 大家看到这个新闻都觉得非常震精,而美股,今天微软开 ...

随机推荐

  1. python 读空的json文件

    读空的json文件,python2和python3 的错误提示是不一样的 python2: ValueError: No JSON object could be decoded python3: j ...

  2. 使用git bush 生成github SSH公钥

    1 如果没有安装ssh,那么使用下面的指令 sudo apt-get install ssh 2 检查SSH公钥 cd ~/.ssh 看看存不存在.ssh,如果存在的话,掠过下一步:不存在的请看下一步 ...

  3. 这些HTML、CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML、CSS、盒子模型、内容布局)

    这些HTML.CSS知识点,面试和平时开发都需要 No1-No4   系列知识点汇总 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) ...

  4. MySQL根据表字段生成C#Model语句

    USE INFORMATION_SCHEMA;SELECT CONCAT('/// <summary>\r\n/// ',COLUMN_COMMENT,'\r\n/// </summ ...

  5. Centos系统更改yum源为163

    Centos安装好之后,按照网上教程对yum源进行修改,但更新之后发现总是提示更新失败,到163网站上查找资源发现目前大部分网上的教程都写错地址了,呵呵 下面是正确的办法,请参考 1.进入存放源配置的 ...

  6. 《Unity 3D游戏客户端基础框架》多线程异步 Socket 框架构建

    引言: 之前写过一个 demo 案例大致讲解了 Socket 通信的过程,并和自建的服务器完成连接和简单的数据通信,详细的内容可以查看 Unity3D -- Socket通信(C#).但是在实际项目应 ...

  7. 历史上的重大软件BUG启示录第9篇---微软的硬件尝试

    (图片来源于网络) 2001年苹果公司发布第一代iPod,它的推出在当时引起了轰动,它拥有大容量存储空间和全新的操作方式,并且还非常漂亮(在当时看来),因此在市场上大受欢迎,苹果公司也因此赚的盆满钵满 ...

  8. 判断对称二叉树 python代码

    对称二叉树的含义非常容易理解,左右子树关于根节点对称,具体来讲,对于一颗对称二叉树的每一颗子树,以穿过根节点的直线为对称轴,左边子树的左节点=右边子树的右节点,左边子树的右节点=左边子树的左节点.所以 ...

  9. 【css样式生成 & 图片合并压缩工具】Sprite,你值得拥有

    好久好久没有更新博客了,越来越懒...话说懒也有懒的好处,懒的时候你可能会想着用些神马方法来帮你偷懒.没错,下面就给大家介绍个博主前不久开发的[css样式生成 & 图片合并压缩工具]Spirt ...

  10. 在WPF中使用CefSharp嵌入浏览器(转)

    在WPF中使用CefSharp嵌入浏览器   日常开发中,我们需要将一些Web页面嵌入到桌面客户端软件中.下面我们使用CefSharp嵌入浏览器来实现. 首先先介绍一下CefSharp嵌入式浏览器,它 ...