<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_OK_008 blog</title><subtitle type="text">No incapable except unthinkable.      God helps those who help themselves</subtitle><id>http://feed.cnblogs.com/blog/u/25148/rss</id><updated>2011-11-24T18:13:22Z</updated><author><name>OK_008</name><uri>http://www.cnblogs.com/wghao/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wghao/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/25148/rss"/><entry><id>http://www.cnblogs.com/wghao/archive/2011/11/25/2262520.html</id><title type="text">PowerShell应用之-可更新订阅的事务复制</title><summary type="text">开始 在上一篇《PowerShell应用之-事务复制》，描述了如何通过PowerShell脚本配置发布&amp;amp;分发服务器、创建事务发布&amp;amp;发布项目、和创建推送&amp;amp;请求订阅。而且上篇订阅是只读的（ReadOnly），在这篇，将会讲述可更新订阅的事务复制，涉及到两种基本的订阅类型：队列更新（QueuedUpdate） &amp;amp; 即时更新（ImmediateUpdate ）。本篇使用的例子会沿用上一篇的部分脚本及测试数据库。在这边我们省略了配置发布&amp;amp;分发服务器部分，直接从创建事务发布和发布项目（TransPublication &amp;amp; TransArticle）开始。 创</summary><published>2011-11-24T18:13:00Z</published><updated>2011-11-24T18:13:00Z</updated><author><name>OK_008</name><uri>http://www.cnblogs.com/wghao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wghao/archive/2011/11/25/2262520.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wghao/archive/2011/11/25/2262520.html"/><content type="html">&lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;开始&lt;/strong&gt;&lt;/font&gt; &lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;在上一篇&lt;a href="http://www.cnblogs.com/wghao/archive/2011/11/22/2259586.html" target="_blank"&gt;《PowerShell应用之-事务复制》&lt;/a&gt;，描述了如何通过PowerShell脚本配置发布&amp;amp;分发服务器、创建事务发布&amp;amp;发布项目、和创建推送&amp;amp;请求订阅。而且上篇订阅是只读的（ReadOnly），在这篇，将会讲述可更新订阅的事务复制，涉及到两种基本的订阅类型：队列更新（QueuedUpdate） &amp;amp; 即时更新（ImmediateUpdate ）。本篇使用的例子会沿用上一篇的部分脚本及测试数据库。在这边我们省略了配置发布&amp;amp;分发服务器部分，直接从创建事务发布和发布项目（TransPublication &amp;amp; TransArticle）开始。&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;创建事务发布和设置发布项目(TransPublication &amp;amp; TransArticle) &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;hr /&gt;    &lt;p&gt;在原来的代码中，我们会在开始的输入部分多加两个变量描述可更新订阅的订阅类型，是否队列更新 &amp;amp; 是否即时更新&lt;/p&gt;&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#允许队列更新订阅&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$AllowQueuedTransactions&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;$True&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#允许即时更新订阅&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$AllowSynchronousTransactions&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;$True&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111250207204834.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111250207237078.png" border="0" height="335" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在TransPublication创建之前，需要补上下面的简短代码，描述添加队列更新 &amp;amp; 即时更新到TransPublication可更新订阅选项中。&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&lt;/span&gt;&lt;span style="color: #008000;"&gt;允许队列更新订阅&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$AllowQueuedTransactions&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;&lt;span style="color: #008080;"&gt;-bor&lt;/span&gt;&amp;nbsp;[Microsoft.SqlServer.Replication.PublicationAttributes]::AllowQueuedTransactions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;允许即时更新订阅&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$AllowSynchronousTransactions&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;&lt;span style="color: #008080;"&gt;-bor&lt;/span&gt;&amp;nbsp;[Microsoft.SqlServer.Replication.PublicationAttributes]::AllowSynchronousTransactions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111250207248374.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111250207276059.png" border="0" height="426" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;这部分的完整代码，我们可以查看PowerShell脚本：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;Replication-5-Create a Publication(AllowQueuedTransactions).ps1&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('bb44fd51-2480-4c7a-a538-099ce2151c04')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_bb44fd51-2480-4c7a-a538-099ce2151c04" onclick="cnblogs_code_hide('bb44fd51-2480-4c7a-a538-099ce2151c04',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_bb44fd51-2480-4c7a-a538-099ce2151c04" &gt;&lt;div&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;===========================创建事务发布&amp;amp;发布项目===========================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#配置发布、分发服务器者登录用户名&amp;amp;密码，这里发布与分发使用同一个实例&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;WINSERVER01\SQL2008DE01&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sa&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sql20081&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置域账号，应用于同步复制&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;TN\SQLAccount&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$RPassword&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Sql123456&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#发布数据库&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ReplicationDB&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#项目名称&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$TransPublicationName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;+&amp;#8220;_Tran_&amp;#8221;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#项目对应的是表，使用"Select&amp;nbsp;*&amp;nbsp;Form&amp;nbsp;TableName&amp;nbsp;Where&amp;nbsp;...;"格式&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&lt;br /&gt;Select&amp;nbsp;*&amp;nbsp;From&amp;nbsp;DataOwner&amp;nbsp;Where&amp;nbsp;ID=2;&lt;br /&gt;Select&amp;nbsp;*&amp;nbsp;From&amp;nbsp;Data1&amp;nbsp;Where&amp;nbsp;OwnerID=2;&lt;br /&gt;Select&amp;nbsp;*&amp;nbsp;From&amp;nbsp;Data2&amp;nbsp;Where&amp;nbsp;ParentID&amp;nbsp;In(Select&amp;nbsp;ID&amp;nbsp;From&amp;nbsp;dbo.Data1&amp;nbsp;Where&amp;nbsp;OwnerID=2);&lt;br /&gt;Select&amp;nbsp;*&amp;nbsp;From&amp;nbsp;DataRelation&amp;nbsp;Where&amp;nbsp;ParentID&amp;nbsp;In(Select&amp;nbsp;dbo.Data2.ID&amp;nbsp;From&amp;nbsp;dbo.Data1&amp;nbsp;Inner&amp;nbsp;Join&amp;nbsp;dbo.Data2&amp;nbsp;On&amp;nbsp;dbo.Data1.ID&amp;nbsp;=&amp;nbsp;dbo.Data2.ParentID&amp;nbsp;And&amp;nbsp;dbo.Data1.OwnerID=2);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#发行项目选项&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$PreCreationMethod&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;drop&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;当名称已被使用时的操作.可以选择&amp;#8220;none&amp;#8221;，&amp;#8220;delete&amp;#8221;，&amp;#8220;drop&amp;#8221;,"truncate"&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#允许队列更新订阅&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$AllowQueuedTransactions&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;$True&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#允许即时更新订阅&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$AllowSynchronousTransactions&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;$True&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;================================================================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Rmo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.ConnectionInfo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;1:&amp;nbsp;创建连接&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&amp;nbsp;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Common.ServerConnection&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;2:&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Try&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.Connect()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.IsOpen)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;&amp;nbsp;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.ReplicationDatabase&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.EnabledTransPublishing=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;创建队列读取器代理&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentExists&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentProcessSecurity.Login=&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentProcessSecurity.Password=&lt;span style="color: #800080;"&gt;$RPassword&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentPublisherSecurity.WindowsAuthentication=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentPublisherSecurity.SqlStandardLogin=&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentPublisherSecurity.SqlStandardPassword=&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentPublisherSecurity.WindowsAuthentication=&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.CreateLogReaderAgent()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;创建事务发布&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.TransPublication&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublicationName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotGenerationAgentProcessSecurity.Login=&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotGenerationAgentProcessSecurity.Password=&lt;span style="color: #800080;"&gt;$RPassword&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotGenerationAgentPublisherSecurity.SqlStandardLogin=&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotGenerationAgentPublisherSecurity.SqlStandardPassword=&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication=&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;允许队列更新订阅&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$AllowQueuedTransactions&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;&lt;span style="color: #008080;"&gt;-bor&lt;/span&gt;&amp;nbsp;[Microsoft.SqlServer.Replication.PublicationAttributes]::AllowQueuedTransactions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;允许即时更新订阅&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$AllowSynchronousTransactions&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;&lt;span style="color: #008080;"&gt;-bor&lt;/span&gt;&amp;nbsp;[Microsoft.SqlServer.Replication.PublicationAttributes]::AllowSynchronousTransactions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.IsExistingObject&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Create()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;定义发布项目&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;While&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.IndexOf(&amp;#8220;`r&amp;#8221;)&amp;nbsp;&lt;span style="color: #008080;"&gt;-gt&lt;/span&gt;&amp;nbsp;0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;处理Select列表&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.Replace(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;`r&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;""&lt;/span&gt;)}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;While&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.IndexOf(&amp;#8220;`n&amp;#8221;)&amp;nbsp;&lt;span style="color: #008080;"&gt;-gt&lt;/span&gt;&amp;nbsp;0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.Replace(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;`n&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;""&lt;/span&gt;)}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;While&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.IndexOf(&amp;#8220;`t&amp;#8221;)&amp;nbsp;&lt;span style="color: #008080;"&gt;-gt&lt;/span&gt;&amp;nbsp;0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.Replace(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;`t&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;While&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.IndexOf(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #008080;"&gt;-gt&lt;/span&gt;&amp;nbsp;0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.Replace(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.ToLower()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$SqlLine&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.split(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$SqlLine&lt;/span&gt;.IndexOf(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;from&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #008080;"&gt;-gt&lt;/span&gt;&amp;nbsp;0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Where&lt;/span&gt;=&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TB&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SqlLine&lt;/span&gt;.split(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)[3]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$SqlLine&lt;/span&gt;.LastIndexOf(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;where&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #008080;"&gt;-gt&lt;/span&gt;&amp;nbsp;0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Where&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SqlLine&lt;/span&gt;.substring([int32](&lt;span style="color: #800080;"&gt;$SqlLine&lt;/span&gt;.IndexOf(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;where&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)+6))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Article&lt;/span&gt;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.TransArticle&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TB&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$TransPublicationName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Article&lt;/span&gt;.SourceObjectName=&lt;span style="color: #800080;"&gt;$TB&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$article&lt;/span&gt;.FilterClause=&lt;span style="color: #800080;"&gt;$Where&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$article&lt;/span&gt;.PreCreationMethod=&lt;span style="color: #800080;"&gt;$PreCreationMethod&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$Article&lt;/span&gt;.IsExistingObject&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Article&lt;/span&gt;.Create()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;事务发布&amp;nbsp;'$TransPublicationName'&amp;nbsp;已创建!&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;Catch&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Error&amp;nbsp;&lt;span style="color: #800080;"&gt;$_&lt;/span&gt;&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;执行上面的完整代码，我们就可以看到在事务发布ReplicationDB_Tran_的属性，查看可更新订阅选项内容：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111250207321693.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111250207357153.png" border="0" height="659" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;font size="3"&gt;如何创建推送订阅(Push Subscription) &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;hr /&gt;&#xD;
&#xD;
&#xD;
&#xD;
&lt;p&gt;创建可更新订阅的时候，与上篇创建订阅的有些不同，在这过程，我们代码开头位置多一个变量来描述可更新订阅类型。&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#可更新订阅类型&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$SubscriberType&lt;/span&gt;=&amp;#8220;ImmediateUpdate&amp;#8221;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111250207403343.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111250207455573.png" border="0" height="478" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在创建订阅之前会，根据开头设置的变量$SubscriberType，来描述订阅类型，&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;更新类型&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SubscriberType=[Microsoft.SqlServer.Replication.TransSubscriberType]::&lt;span style="color: #800080;"&gt;$SubscriberType&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111250207461603.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111250207472833.png" border="0" height="182" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;当要使用即时更新的时候，我们还需要设置在连接到发布服务器时立即更新订阅的同步触发器所使用的配置和安全信息。这里将应用到类"Microsoft.SqlServer.Replication.ReplicationDatabase"中的方法LinkPublicationForUpdateableSubscription。此方法类似T-SQL中的sp_link_publication系统存储过程。&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&lt;/span&gt;&lt;span style="color: #008000;"&gt;在订阅端，设置连接发行服务器验证&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;在订阅端，确保登录账户&amp;#8220;repllinkproxy&amp;#8221;對订阅数据库具有db_onwer權限&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;&amp;nbsp;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.ReplicationDatabase&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$SubServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LoadProperties())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Publisher&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$PublisherDB&lt;/span&gt;&amp;nbsp;=&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SubscriptionDBName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Publication&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Distributo&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$null&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$PublisherConnectionSecurityContext&lt;/span&gt;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.PublisherConnectionSecurityContext&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;--SqlStandard模式--#&amp;gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;lt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$PublisherConnectionSecurityContext&lt;/span&gt;.SecurityMode=[Microsoft.SqlServer.Replication.ReplicationSecurityMode]::SqlStandard&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$PublisherConnectionSecurityContext&lt;/span&gt;.SqlStandardLogin=&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$PublisherConnectionSecurityContext&lt;/span&gt;.SqlStandardPassword=&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;--PredefinedServer模式--#&amp;gt;&amp;nbsp;#需要创建一个固定的链接服务器，名字与$serverInstance相同&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;$PublisherConnectionSecurityContext.SecurityMode=[Microsoft.SqlServer.Replication.ReplicationSecurityMode]::PredefinedServer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LinkPublicationForUpdateableSubscription(&lt;span style="color: #800080;"&gt;$Publisher&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$PublisherDB&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$Publication&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$Distributo&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$PublisherConnectionSecurityContext&lt;/span&gt;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111250207534.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111250207584775.png" border="0" height="485" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;注&lt;/strong&gt;，在上面的即时更新脚本中，我们要确保发布服务器与订阅服务器的MSTDC要启动，要是存在防火墙需要开启135端口。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;我们要注意&amp;#8221;&amp;lt;#--SqlStandard模式&amp;#8212;#&amp;gt;&amp;#8221; 和&amp;#8220; &amp;lt;#--PredefinedServer模式--#&amp;gt;&amp;#8221;两部分。使用&amp;#8221;&amp;lt;#--SqlStandard模式&amp;#8212;#&amp;gt;&amp;#8221; 会指定动态远程过程调用 (RPC)。&amp;#8220; &amp;lt;#--PredefinedServer模式--#&amp;gt;&amp;#8221;需要固定的链接服务器。是于这两者具体的差异，可能要另写一篇来详细描述，比较有意思的。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;订阅的完整PowerShell脚本，我们可以参考：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;Replication-5-Create a Publication(AllowQueuedTransactions).ps1&lt;/p&gt;&#xD;
&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('396d32e9-4051-4d2a-b5e6-4e2ff4387263')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_396d32e9-4051-4d2a-b5e6-4e2ff4387263" onclick="cnblogs_code_hide('396d32e9-4051-4d2a-b5e6-4e2ff4387263',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_396d32e9-4051-4d2a-b5e6-4e2ff4387263" &gt;&lt;div&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;===========================创建推送订阅===========================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#分发代理程序执行账户&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;WINSERVER01\SQL2008DE01&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sa&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sql20081&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置域账号，应用于同步复制&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;TN\SQLAccount&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$RPassword&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Sql123456&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#连接到订阅服务器账户&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$SubserverInstance&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;TON-WINXP001\SQL2008DE&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$SubuserName&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sa&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$Subpassword&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;WinXP00120081&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#发布对象&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ReplicationDB&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$TransPublicationName&lt;/span&gt;=&amp;#8220;ReplicationDB_Tran_&amp;#8221;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#是否要初始化&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$invalidate&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#可更新订阅类型&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$SubscriberType&lt;/span&gt;=&amp;#8220;ImmediateUpdate&amp;#8221;&lt;br /&gt;&lt;br /&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;br /&gt;&lt;/span&gt;ReadOnly&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;该订阅是只读的。在订阅服务器上所做的更改不会发送到发布服务器。&lt;br /&gt;&lt;br /&gt;QueuedUpdate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;启用排队更新的订阅。可以在订阅服务器上进行数据修改，将其存储在队列中，然后传播到发布服务器。Oracle&amp;nbsp;发布服务器不支持&lt;br /&gt;&lt;br /&gt;ImmediateUpdate&amp;nbsp;:&amp;nbsp;启用对即时更新订阅的支持。Oracle&amp;nbsp;发布服务器不支持。&lt;br /&gt;&lt;br /&gt;QueuedFailover&amp;nbsp;&amp;nbsp;:&amp;nbsp;将订阅启用为排队更新订阅，并允许更改为立即更新模式。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在订阅服务器和发布服务器之间建立连接之前，可以在订阅服务器上修改数据，并将数据修改存储在队列中。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;建立起持续连接后，即可将更新模式更改为立即更新。Oracle&amp;nbsp;发布服务器不支持。&lt;br /&gt;&lt;br /&gt;Failover&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;将排队更新作为故障转移的情况下启用用于即时更新的订阅。可以在订阅服务器上进行数据修改并立即传播到发布服务器。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;如果发布服务器与订阅服务器未连接在一起，则可以更改更新模式以便将在订阅服务器上所做的数据修改存储在队列中，&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;直到订阅服务器与发布服务器重新连接在一起。Oracle&amp;nbsp;发布服务器不支持。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;================================================================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Rmo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.ConnectionInfo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;1:&amp;nbsp;创建连接&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&amp;nbsp;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Common.ServerConnection&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$SubServerConnection&lt;/span&gt;&amp;nbsp;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Common.ServerConnection&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$SubserverInstance&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$SubuserName&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;$Subpassword&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;2:&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Try&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.Connect()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$SubServerConnection&lt;/span&gt;.Connect()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.IsOpen&amp;nbsp;&lt;span style="color: #008080;"&gt;-and&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$SubServerConnection&lt;/span&gt;.IsOpen)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.TransPublication&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublicationName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.LoadProperties()&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置推送订阅&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;&lt;span style="color: #008080;"&gt;-notmatch&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;AllowPush&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#使用到位運算OR(inclusive)&amp;nbsp;"-bor"&amp;nbsp;,如果要刪除某一特征就使用"-bxor"&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;&lt;span style="color: #008080;"&gt;-bor&lt;/span&gt;&amp;nbsp;[Microsoft.SqlServer.Replication.PublicationAttributes]::AllowPush&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$subscriptionDBName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.DatabaseName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$publicationDBName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.DatabaseName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$publicationName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.TransSubscription&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$publicationName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$publicationDBName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$SubserverInstance&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$subscriptionDBName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.LoadProperties()&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置分发代理程序账号(Windows账号)&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SynchronizationAgentProcessSecurity.Login=&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SynchronizationAgentProcessSecurity.Password=&lt;span style="color: #800080;"&gt;$RPassword&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置订阅服务器登录账号(SQL&amp;nbsp;Server账号)&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SubscriberSecurity.WindowsAuthentication=&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SubscriberSecurity.SqlStandardLogin=&lt;span style="color: #800080;"&gt;$SubuserName&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SubscriberSecurity.SqlStandardPassword=&lt;span style="color: #800080;"&gt;$Subpassword&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.CreateSyncAgentByDefault=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;每天执行&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.AgentSchedule.FrequencyType=[Microsoft.SqlServer.Replication.ScheduleFrequencyType]::Daily&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;分钟&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.AgentSchedule.FrequencySubDay=[Microsoft.SqlServer.Replication.ScheduleFrequencySubDay]::Minute&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;多少分钟执行一次&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.AgentSchedule.FrequencySubDayInterval=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#是否初始化&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$invalidate&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SyncType=[Microsoft.SqlServer.Replication.SubscriptionSyncType]::ReplicationSupportOnly&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;更新类型&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SubscriberType=[Microsoft.SqlServer.Replication.TransSubscriberType]::&lt;span style="color: #800080;"&gt;$SubscriberType&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;在订阅端，设置连接发行服务器验证&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;在订阅端，确保登录账户&amp;#8220;repllinkproxy&amp;#8221;對订阅数据库具有db_onwer權限&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;&amp;nbsp;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.ReplicationDatabase&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$SubServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LoadProperties())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Publisher&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$PublisherDB&lt;/span&gt;&amp;nbsp;=&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SubscriptionDBName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Publication&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Distributo&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$null&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$PublisherConnectionSecurityContext&lt;/span&gt;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.PublisherConnectionSecurityContext&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;--SqlStandard模式--#&amp;gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;lt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$PublisherConnectionSecurityContext&lt;/span&gt;.SecurityMode=[Microsoft.SqlServer.Replication.ReplicationSecurityMode]::SqlStandard&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$PublisherConnectionSecurityContext&lt;/span&gt;.SqlStandardLogin=&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$PublisherConnectionSecurityContext&lt;/span&gt;.SqlStandardPassword=&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;--PredefinedServer模式--#&amp;gt;&amp;nbsp;#需要创建一个固定的链接服务器，名字与$serverInstance相同&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;$PublisherConnectionSecurityContext.SecurityMode=[Microsoft.SqlServer.Replication.ReplicationSecurityMode]::PredefinedServer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LinkPublicationForUpdateableSubscription(&lt;span style="color: #800080;"&gt;$Publisher&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$PublisherDB&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$Publication&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$Distributo&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$PublisherConnectionSecurityContext&lt;/span&gt;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.Create()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;启动快照代理作业&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotAvailable&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.StartSnapshotGenerationAgentJob()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;订阅&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.Name&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;创建完成!&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;订阅&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.Name&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;已创建!&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;发布对象&amp;nbsp;$TransPublicationName&amp;nbsp;&amp;nbsp;不存在！&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;Catch&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Error&amp;nbsp;&lt;span style="color: #800080;"&gt;$_&lt;/span&gt;&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;小结 &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;hr /&gt;&#xD;
&#xD;
&#xD;
&#xD;
&lt;p&gt;本篇描述了PowerShell应用之-可更新订阅的事务复制，在我们测试过程中可能会发现一些问题，特别是即时更新类型的订阅，注意上面提到的注意内容。因时间问题，订阅部分只测试了Push订阅.如果你在测试过程还有其他不明白的地方，可以在文章的后面留言或直接发Email到我的邮箱。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wghao/aggbug/2262520.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wghao/archive/2011/11/25/2262520.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wghao/archive/2011/11/22/2259586.html</id><title type="text">PowerShell应用之-事务复制</title><summary type="text">概述 在之前的几篇描述了PowerShell在SQL Server对SMO（SQL Server Management Objects）的管理，现在开始描述在SQL Server Replication中如何使用PowerShell脚本实现同步复制功能。在本篇中讲述的是实现同步复制中的事务复制，涉及如何创建Publishing,Distribution, Publication, Subscription等。这里将让我们了解到RMO(Replication Management Objects)一些类的使用： Microsoft.SqlServer.Replicat...</summary><published>2011-11-22T15:39:00Z</published><updated>2011-11-22T15:39:00Z</updated><author><name>OK_008</name><uri>http://www.cnblogs.com/wghao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wghao/archive/2011/11/22/2259586.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wghao/archive/2011/11/22/2259586.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;font size="3"&gt;概述&lt;/font&gt; &lt;/font&gt;      &lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;    &lt;p&gt;在之前的几篇描述了PowerShell在SQL Server对SMO（SQL Server Management Objects）的管理，现在开始描述在SQL Server Replication中如何使用PowerShell脚本实现同步复制功能。在本篇中讲述的是实现同步复制中的事务复制，涉及如何创建Publishing,Distribution, Publication, Subscription等。这里将让我们了解到RMO(Replication Management Objects)一些类的使用：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft.SqlServer.Replication.ReplicationServer &lt;/li&gt;    &lt;li&gt;Microsoft.SqlServer.Replication.DistributionDatabase &lt;/li&gt;    &lt;li&gt;Microsoft.SqlServer.Replication.DistributionPublisher &lt;/li&gt;    &lt;li&gt;Microsoft.SqlServer.Replication.ReplicationDatabase &lt;/li&gt;    &lt;li&gt;Microsoft.SqlServer.Replication.TransPublication &lt;/li&gt;    &lt;li&gt;Microsoft.SqlServer.Replication.TransArticle &lt;/li&gt;    &lt;li&gt;Microsoft.SqlServer.Replication.TransSubscription &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;如何配置发布和分发(Publishing &amp;amp; Distribution) &lt;/font&gt;      &lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;    &lt;p&gt;在具有域管理的环境中，配置Publishing &amp;amp; Distribution之前，我们先要准备好一些工作：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;准备一个域账号，专门应用于同步复制使用 &lt;/li&gt;    &lt;li&gt;创建快照文件夹，设成共享，并设置该域账户具有修改快照文件夹的权限。 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111222319594348.png"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_869876c8-3bdb-42a9-863f-c29c8a5e37b0" onclick="cnblogs_code_hide('869876c8-3bdb-42a9-863f-c29c8a5e37b0',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_869876c8-3bdb-42a9-863f-c29c8a5e37b0" &gt;&lt;div&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;===========================配置分发=================================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#配置发布、分发服务器者登录用户名&amp;amp;密码，这里发布与分发使用同一个实例&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;WINSERVER01\SQL2008DE01&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sa&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sql20081&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置域账号，应用于同步复制&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;TN\SQLAccount&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$RPassword&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Sql123456&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置快照文件夹，要使用网络路径，而且设置账户$RAccount具有更改权限&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$WorkingDirectory&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;\\WINSERVER01\ReplicationSnapshot&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;================================================================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Rmo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Smo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.ConnectionInfo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$DistributionDB&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Distribution&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;1:&amp;nbsp;创建连接&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&amp;nbsp;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Common.ServerConnection&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;2:&amp;nbsp;创建同步复制服务器&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$ReplicationServer&lt;/span&gt;&amp;nbsp;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.ReplicationServer&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$Server&lt;/span&gt;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Smo.Server&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Try&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.Connect()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.IsOpen&amp;nbsp;&lt;span style="color: #008080;"&gt;-And&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationServer&lt;/span&gt;.IsDistributor&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;3:创建分发数据库Distribution&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DistributionDatabase&lt;/span&gt;&amp;nbsp;=New-Object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.DistributionDatabase&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DistributionDB&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DistributionDatabase&lt;/span&gt;.DataFolder=&lt;span style="color: #800080;"&gt;$Server&lt;/span&gt;.Settings.DefaultFile&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DistributionDatabase&lt;/span&gt;.LogFolder=&lt;span style="color: #800080;"&gt;$Server&lt;/span&gt;.Settings.DefaultLog&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;4&amp;nbsp;:&amp;nbsp;设置分发数据库&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationServer&lt;/span&gt;.InstallDistributor([string]&lt;span style="color: #800080;"&gt;$null&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$DistributionDatabase&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;5:&amp;nbsp;设置DistributionPublisher&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DistributionPublisher&lt;/span&gt;=New-Object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.DistributionPublisher&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DistributionPublisher&lt;/span&gt;.DistributionDatabase=&lt;span style="color: #800080;"&gt;$DistributionDatabase&lt;/span&gt;.Name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DistributionPublisher&lt;/span&gt;.WorkingDirectory=&lt;span style="color: #800080;"&gt;$WorkingDirectory&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DistributionPublisher&lt;/span&gt;.PublisherSecurity.WindowsAuthentication=&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DistributionPublisher&lt;/span&gt;.PublisherSecurity.SqlStandardLogin=&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DistributionPublisher&lt;/span&gt;.PublisherSecurity.SqlStandardPassword=&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DistributionPublisher&lt;/span&gt;.Create()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;6&amp;nbsp;:&amp;nbsp;设置域账号具有Owner权限&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$Server&lt;/span&gt;.Logins[&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;]&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$null&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Login&lt;/span&gt;=&amp;nbsp;New-Object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Smo.Login&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Server&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Login&lt;/span&gt;.LoginType=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;WindowsUser&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Login&lt;/span&gt;.Create()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$Server&lt;/span&gt;.Databases[&lt;span style="color: #800080;"&gt;$DistributionDB&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$User&lt;/span&gt;=New-Object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Smo.User&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$User&lt;/span&gt;.Login=&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$User&lt;/span&gt;.AddToRole(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;db_owner&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$User&lt;/span&gt;.Create()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;设置分发完成！.&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;Catch&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Error&amp;nbsp;&lt;span style="color: #800080;"&gt;$_&lt;/span&gt;&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111222320084537.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111222320122438.png" border="0" height="549" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;如何创建事务发布和设置发布项目(TransPublication &amp;amp; TransArticle)&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('84f51b70-98ae-4db4-80b9-68c1bc2e56e4')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_84f51b70-98ae-4db4-80b9-68c1bc2e56e4" onclick="cnblogs_code_hide('84f51b70-98ae-4db4-80b9-68c1bc2e56e4',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_84f51b70-98ae-4db4-80b9-68c1bc2e56e4" &gt;&lt;div&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;===========================创建事务发布&amp;amp;发布项目===========================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#配置发布、分发服务器者登录用户名&amp;amp;密码，这里发布与分发使用同一个实例&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;WINSERVER01\SQL2008DE01&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sa&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sql20081&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置域账号，应用于同步复制&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;TN\SQLAccount&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$RPassword&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Sql123456&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#发布数据库&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ReplicationDB&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#项目名称&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$TransPublicationName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;+&amp;#8220;_Tran_&amp;#8221;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#项目对应的是表，使用"Select&amp;nbsp;*&amp;nbsp;Form&amp;nbsp;TableName&amp;nbsp;Where&amp;nbsp;...;"格式&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&lt;br /&gt;Select&amp;nbsp;*&amp;nbsp;From&amp;nbsp;DataOwner&amp;nbsp;Where&amp;nbsp;ID=2;&lt;br /&gt;Select&amp;nbsp;*&amp;nbsp;From&amp;nbsp;Data1&amp;nbsp;Where&amp;nbsp;OwnerID=2;&lt;br /&gt;Select&amp;nbsp;*&amp;nbsp;From&amp;nbsp;Data2&amp;nbsp;Where&amp;nbsp;ParentID&amp;nbsp;In(Select&amp;nbsp;ID&amp;nbsp;From&amp;nbsp;dbo.Data1&amp;nbsp;Where&amp;nbsp;OwnerID=2);&lt;br /&gt;Select&amp;nbsp;*&amp;nbsp;From&amp;nbsp;DataRelation&amp;nbsp;Where&amp;nbsp;ParentID&amp;nbsp;In(Select&amp;nbsp;dbo.Data2.ID&amp;nbsp;From&amp;nbsp;dbo.Data1&amp;nbsp;Inner&amp;nbsp;Join&amp;nbsp;dbo.Data2&amp;nbsp;On&amp;nbsp;dbo.Data1.ID&amp;nbsp;=&amp;nbsp;dbo.Data2.ParentID&amp;nbsp;And&amp;nbsp;dbo.Data1.OwnerID=2);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#发行项目选项&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$PreCreationMethod&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;drop&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;当名称已被使用时的操作.可以选择&amp;#8220;none&amp;#8221;，&amp;#8220;delete&amp;#8221;，&amp;#8220;drop&amp;#8221;,"truncate"&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;================================================================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Rmo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.ConnectionInfo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;1:&amp;nbsp;创建连接&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&amp;nbsp;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Common.ServerConnection&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;2:&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Try&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.Connect()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.IsOpen)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;&amp;nbsp;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.ReplicationDatabase&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.EnabledTransPublishing=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;创建队列读取器代理&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentExists&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentProcessSecurity.Login=&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentProcessSecurity.Password=&lt;span style="color: #800080;"&gt;$RPassword&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentPublisherSecurity.WindowsAuthentication=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentPublisherSecurity.SqlStandardLogin=&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentPublisherSecurity.SqlStandardPassword=&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.LogReaderAgentPublisherSecurity.WindowsAuthentication=&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReplicationDatabase&lt;/span&gt;.CreateLogReaderAgent()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;创建事务发布&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.TransPublication&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublicationName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotGenerationAgentProcessSecurity.Login=&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotGenerationAgentProcessSecurity.Password=&lt;span style="color: #800080;"&gt;$RPassword&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotGenerationAgentPublisherSecurity.SqlStandardLogin=&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotGenerationAgentPublisherSecurity.SqlStandardPassword=&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication=&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.IsExistingObject&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Create()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;定义发布项目&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;While&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.IndexOf(&amp;#8220;`r&amp;#8221;)&amp;nbsp;&lt;span style="color: #008080;"&gt;-gt&lt;/span&gt;&amp;nbsp;0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;处理Select列表&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.Replace(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;`r&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;""&lt;/span&gt;)}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;While&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.IndexOf(&amp;#8220;`n&amp;#8221;)&amp;nbsp;&lt;span style="color: #008080;"&gt;-gt&lt;/span&gt;&amp;nbsp;0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.Replace(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;`n&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;""&lt;/span&gt;)}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;While&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.IndexOf(&amp;#8220;`t&amp;#8221;)&amp;nbsp;&lt;span style="color: #008080;"&gt;-gt&lt;/span&gt;&amp;nbsp;0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.Replace(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;`t&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;While&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.IndexOf(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #008080;"&gt;-gt&lt;/span&gt;&amp;nbsp;0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.Replace(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.ToLower()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$SqlLine&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$SQL&lt;/span&gt;.split(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$SqlLine&lt;/span&gt;.IndexOf(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;from&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #008080;"&gt;-gt&lt;/span&gt;&amp;nbsp;0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Where&lt;/span&gt;=&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TB&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SqlLine&lt;/span&gt;.split(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)[3]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$SqlLine&lt;/span&gt;.LastIndexOf(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;where&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #008080;"&gt;-gt&lt;/span&gt;&amp;nbsp;0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Where&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$SqlLine&lt;/span&gt;.substring([int32](&lt;span style="color: #800080;"&gt;$SqlLine&lt;/span&gt;.IndexOf(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;where&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)+6))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Article&lt;/span&gt;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.TransArticle&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TB&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$TransPublicationName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Article&lt;/span&gt;.SourceObjectName=&lt;span style="color: #800080;"&gt;$TB&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$article&lt;/span&gt;.FilterClause=&lt;span style="color: #800080;"&gt;$Where&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$article&lt;/span&gt;.PreCreationMethod=&lt;span style="color: #800080;"&gt;$PreCreationMethod&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$Article&lt;/span&gt;.IsExistingObject&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Article&lt;/span&gt;.Create()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;事务发布&amp;nbsp;'$TransPublicationName'&amp;nbsp;已创建!&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;Catch&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Error&amp;nbsp;&lt;span style="color: #800080;"&gt;$_&lt;/span&gt;&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111222320171627.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111222320213989.png" border="0" height="533" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111222320221414.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111222320242820.png" border="0" height="301" width="479" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;如何创建推送订阅(Push Subscription)&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('cd99fd0b-f3e9-47c3-aa7c-34cc252e6518')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_cd99fd0b-f3e9-47c3-aa7c-34cc252e6518" onclick="cnblogs_code_hide('cd99fd0b-f3e9-47c3-aa7c-34cc252e6518',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_cd99fd0b-f3e9-47c3-aa7c-34cc252e6518" &gt;&lt;div&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;===========================创建推送订阅===========================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#分发代理程序执行账户&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;WINSERVER01\SQL2008DE01&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sa&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sql20081&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置域账号，应用于同步复制&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;TN\SQLAccount&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$RPassword&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Sql123456&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#连接到订阅服务器账户&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$SubserverInstance&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;TON-WINXP001\SQL2008DE&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$SubuserName&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sa&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$Subpassword&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;WinXP00120081&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#发布对象&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ReplicationDB&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$TransPublicationName&lt;/span&gt;=&amp;#8220;ReplicationDB_Tran_&amp;#8221;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#是否要初始化&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$invalidate&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;================================================================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Rmo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.ConnectionInfo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;1:&amp;nbsp;创建连接&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&amp;nbsp;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Common.ServerConnection&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;2:&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Try&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.Connect()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.IsOpen)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.TransPublication&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublicationName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.LoadProperties()&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置推送订阅&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;&lt;span style="color: #008080;"&gt;-notmatch&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;AllowPush&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#使用到位運算OR(inclusive)&amp;nbsp;"-bor"&amp;nbsp;,如果要刪除某一特征就使用"-bxor"&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;&lt;span style="color: #008080;"&gt;-bor&lt;/span&gt;&amp;nbsp;[Microsoft.SqlServer.Replication.PublicationAttributes]::AllowPush&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$subscriptionDBName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.DatabaseName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$publicationDBName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.DatabaseName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$publicationName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.TransSubscription&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$publicationName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$publicationDBName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$SubserverInstance&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$subscriptionDBName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.LoadProperties()&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置分发代理程序账号(Windows账号)&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SynchronizationAgentProcessSecurity.Login=&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SynchronizationAgentProcessSecurity.Password=&lt;span style="color: #800080;"&gt;$RPassword&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置订阅服务器登录账号(SQL&amp;nbsp;Server账号)&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SubscriberSecurity.WindowsAuthentication=&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SubscriberSecurity.SqlStandardLogin=&lt;span style="color: #800080;"&gt;$SubuserName&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SubscriberSecurity.SqlStandardPassword=&lt;span style="color: #800080;"&gt;$Subpassword&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.CreateSyncAgentByDefault=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;每天执行&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.AgentSchedule.FrequencyType=[Microsoft.SqlServer.Replication.ScheduleFrequencyType]::Daily&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;分钟&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.AgentSchedule.FrequencySubDay=[Microsoft.SqlServer.Replication.ScheduleFrequencySubDay]::Minute&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;多少分钟执行一次&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.AgentSchedule.FrequencySubDayInterval=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#是否初始化&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$invalidate&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SyncType=[Microsoft.SqlServer.Replication.SubscriptionSyncType]::ReplicationSupportOnly&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.Create()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;启动快照代理作业&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotAvailable&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.StartSnapshotGenerationAgentJob()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;订阅&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.Name&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;创建完成!&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;订阅&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.Name&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;已创建!&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;发布对象&amp;nbsp;$TransPublicationName&amp;nbsp;&amp;nbsp;不存在！&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;Catch&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Error&amp;nbsp;&lt;span style="color: #800080;"&gt;$_&lt;/span&gt;&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111222320262654.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/20111122232031632.png" border="0" height="643" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;如何创建请求订阅(Pull Subscription)&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('c20060b2-485e-44b8-8b12-5a00f62d6834')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_c20060b2-485e-44b8-8b12-5a00f62d6834" onclick="cnblogs_code_hide('c20060b2-485e-44b8-8b12-5a00f62d6834',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_c20060b2-485e-44b8-8b12-5a00f62d6834" &gt;&lt;div&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;===========================创建请求订阅===========================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#分发代理程序执行账户&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;WINSERVER01\SQL2008DE01&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sa&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sql20081&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置域账号，应用于同步复制&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;TN\SQLAccount&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$RPassword&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Sql123456&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#连接到订阅服务器账户&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$SubserverInstance&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;TON-WINXP001\SQL2008DE&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$SubuserName&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sa&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$Subpassword&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;WinXP00120081&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#发布对象&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ReplicationDB&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$TransPublicationName&lt;/span&gt;=&amp;#8220;ReplicationDB_Tran_&amp;#8221;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#是否要初始化&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;------------------------------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$invalidate&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;================================================================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Rmo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.ConnectionInfo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;1:&amp;nbsp;创建连接&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&amp;nbsp;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Common.ServerConnection&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$SubServerConnection&lt;/span&gt;&amp;nbsp;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Common.ServerConnection&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$SubserverInstance&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$SubuserName&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;$Subpassword&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;Step&amp;nbsp;2:&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Try&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.Connect()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$SubServerConnection&lt;/span&gt;.Connect()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.IsOpen&amp;nbsp;&lt;span style="color: #008080;"&gt;-And&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$SubServerConnection&lt;/span&gt;.IsOpen)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.TransPublication&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublicationName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$DataBase&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.LoadProperties()&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置请求订阅&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;&lt;span style="color: #008080;"&gt;-notmatch&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;AllowPull&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#使用到位运算符OR(inclusive)&amp;nbsp;"-bor"&amp;nbsp;,如果要刪除某一特征就使用"-bxor"&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Attributes&amp;nbsp;&lt;span style="color: #008080;"&gt;-bor&lt;/span&gt;&amp;nbsp;[Microsoft.SqlServer.Replication.PublicationAttributes]::AllowPull&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$subscriptionDBName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.DatabaseName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$publisherName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$publicationDBName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.DatabaseName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$publicationName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.Name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;=New-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Replication.TransPullSubscription&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$subscriptionDBName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$publisherName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$publicationDBName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$publicationName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$SubServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.LoadProperties()&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置分发代理程序账号(Windows帳戶)&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SynchronizationAgentProcessSecurity.Login=&lt;span style="color: #800080;"&gt;$RAccount&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.SynchronizationAgentProcessSecurity.Password=&lt;span style="color: #800080;"&gt;$RPassword&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#设置分发服务器登录账号(SQL&amp;nbsp;Server帳戶)&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.DistributorSecurity.WindowsAuthentication=&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.DistributorSecurity.SqlStandardLogin=&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.DistributorSecurity.SqlStandardPassword=&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.CreateSyncAgentByDefault=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;每天执行&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.AgentSchedule.FrequencyType=[Microsoft.SqlServer.Replication.ScheduleFrequencyType]::Daily&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;分钟&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.AgentSchedule.FrequencySubDay=[Microsoft.SqlServer.Replication.ScheduleFrequencySubDay]::Minute&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;多少分钟执行一次&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.AgentSchedule.FrequencySubDayInterval=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.Create()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;是否初始化&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$invalidate&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$SyncType&lt;/span&gt;=[Microsoft.SqlServer.Replication.SubscriptionSyncType]::ReplicationSupportOnly&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$SyncType&lt;/span&gt;=[Microsoft.SqlServer.Replication.SubscriptionSyncType]::Automatic&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;设置订阅服务器是否只读&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$subscriberType&lt;/span&gt;=[Microsoft.SqlServer.Replication.TransSubscriberType]::ReadOnly&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;在发布服务器上注册订阅服务器&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.MakePullSubscriptionWellKnown(&lt;span style="color: #800080;"&gt;$SubserverInstance&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$subscriptionDBName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$SyncType&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$subscriberType&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;启动快照代理作业&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.SnapshotAvailable&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$TransPublication&lt;/span&gt;.StartSnapshotGenerationAgentJob()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;订阅&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.Name&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;创建完成!&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;订阅&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800080;"&gt;$TransSubscription&lt;/span&gt;.Name&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;已创建!&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;发布对象&amp;nbsp;$TransPublicationName&amp;nbsp;&amp;nbsp;不存在！&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;Catch&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Error&amp;nbsp;&lt;span style="color: #800080;"&gt;$_&lt;/span&gt;&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111222320332418.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111222320388891.png" border="0" height="584" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;设置请求订阅的时候，需要设置域账户&amp;#8220;TN\SQLAccount&amp;#8221;对订阅数据库具有db_Owner成员权限，否则无法初始化。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111222320438297.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111222320484181.png" border="0" height="643" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;小结&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;    在同步复制使用PowerShell脚本创建，能为我们带来方便，特别是一次配置多个同步复制的时候。是于查看和检查同步复制，我们可以结合SSMS和复制监视器来完成。&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wghao/aggbug/2259586.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wghao/archive/2011/11/22/2259586.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wghao/archive/2011/11/09/2241903.html</id><title type="text">PowerShell应用之-批量还原数据库(支持完整，差异，事务日志)</title><summary type="text">开始 直接切入主题，今天我们继续来描述PowerShell的一个应用，实现批量还原SQL Server数据库,可以支持SQL Server 2005\2008数据库。在本章中，我们将涉及到几个要点： Microsoft.SqlServer.Management.Smo.Restore类 System.Data.DataTable类 PowerShell中的函数(Function) PowerShell命令Get-Unique Microsoft.SqlServer.Management.Smo.Restore类 在...</summary><published>2011-11-09T14:24:00Z</published><updated>2011-11-09T14:24:00Z</updated><author><name>OK_008</name><uri>http://www.cnblogs.com/wghao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wghao/archive/2011/11/09/2241903.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wghao/archive/2011/11/09/2241903.html"/><content type="html">&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;开始 &lt;/strong&gt;      &lt;/font&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;    &lt;p&gt;直接切入主题，今天我们继续来描述PowerShell的一个应用，实现批量还原SQL Server数据库,可以支持SQL Server 2005\2008数据库。在本章中，我们将涉及到几个要点：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft.SqlServer.Management.Smo.Restore类 &lt;/li&gt;    &lt;li&gt;System.Data.DataTable类 &lt;/li&gt;    &lt;li&gt;PowerShell中的函数(Function) &lt;/li&gt;    &lt;li&gt;PowerShell命令Get-Unique&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Microsoft.SqlServer.Management.Smo.Restore类&lt;/font&gt; &lt;/strong&gt;    &lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;    &lt;p&gt;在PowerShell要实现还原SQL Server数据库，我们需要应用到Microsoft.SqlServer.Management.Smo.Restore类。它为我们提供了丰富的还原数据库过程需要的各种属性和方法。首先，提供一份数据库备份文件，我们要还原它，我们需要知道备份文件的标头信息(backup header information),和备份文件里组成(数据文件&amp;amp;日志文件)(the database and log files contained in the backup set)&lt;/p&gt;  &lt;p&gt;要是在SQL Server Management Studio(SSMS)里，直接可以调用Transact-SQL:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; master&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt; Headeronly &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Disk&lt;/span&gt;=&lt;span style="color: #006080"&gt;'E:\DBBackup\myDB2008_20111107_01.trn'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt; filelistonly &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Disk&lt;/span&gt;=&lt;span style="color: #006080"&gt;'E:\DBBackup\myDB2008_20111107_01.trn'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111090128536212.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111090128568914.png" border="0" height="332" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在执行结果的第一个记录集中，我们可以找到对当前还原有用的信息，如DatabaseName,DackupType,Position,BackupStartDate。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;第二个记录集，可以找出数据库myDB2008由两个数据文件&amp;#8221;myDB2008&amp;#8221; &amp;amp; &amp;#8220;myDB20082&amp;#8221;和一个日志文件&amp;#8221;myDB2008_log&amp;#8221;组成。还描述有各文件的物理存储位置，文件类型，文件ID等信息。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;要是我们想在PowerShell中通过Restore类获得类似信息，需要通过&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.aspx" target="_blank"&gt;Restore类&lt;/a&gt;提供的两个方法&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.readbackupheader.aspx" target="_blank"&gt;ReadBackupHeader&lt;/a&gt; 和 &lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.readfilelist.aspx" target="_blank"&gt;ReadFileList&lt;/a&gt; .这两个方法都是会返回一个&lt;a href="http://technet.microsoft.com/zh-cn/library/system.data.datatable.aspx" target="_blank"&gt;DataTable&lt;/a&gt;对象。 存在着备份文件的标头信息和文件组成信息。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$serverInstance="WINSERVER01\SQL2008DE01" &lt;br /&gt;$userName="sa"&lt;br /&gt;$password="sql20081"&lt;br /&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("System.&lt;span style="color: #0000ff"&gt;Data&lt;/span&gt;") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;$ServerConnection =&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; "Microsoft.SqlServer.Management.Common.ServerConnection" $serverInstance,$userName, $password  &lt;br /&gt;$Server=&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; "Microsoft.SqlServer.Management.Smo.Server" $ServerConnection&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; "Microsoft.SqlServer.Management.Smo.&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;"  &lt;br /&gt;&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;.Devices.AddDevice("E:\DBBackup\myDB2008_20111107_01.trn", [Microsoft.SqlServer.Management.Smo.DeviceType]::&lt;span style="color: #0000ff"&gt;File&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;Read&lt;/span&gt;=$&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;.ReadBackupHeader($Server)&lt;br /&gt;$FileRead=$&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;.ReadFileList($Server)&lt;br /&gt;&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;Read&lt;/span&gt;  | Format-&lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; -AutoSize -Wrap -Property DatabaseName,BackupType,BackupStartDate,&lt;span style="color: #0000ff"&gt;Position&lt;/span&gt;&lt;br /&gt;$FileRead | Format-&lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; -AutoSize -Wrap -Property LogicalName,PhysicalName,Type,FileId&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111090129024764.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111090129074793.png" border="0" height="580" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;我们在代码中看到有一行：&amp;#8221;$Restore.Devices.AddDevice("E:\DBBackup\myDB2008_20111107_01.trn", [Microsoft.SqlServer.Management.Smo.DeviceType]::File)&amp;#8221;描述添加备份文件到当前的还原对象$Restore中，这样我们才可以使用方法&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.readbackupheader.aspx" target="_blank"&gt;ReadBackupHeader&lt;/a&gt; 和 &lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.readfilelist.aspx" target="_blank"&gt;ReadFileList&lt;/a&gt;读取对应的信息。如果一个文件里面含有多个备份，当我们只需要读取某一个备份文件的标头信息、文件组成信息，就要先设置$Restore的属性FileNumber。系统预设属性FileNumber为0，方法&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.readbackupheader.aspx" target="_blank"&gt;ReadBackupHeader&lt;/a&gt;会读取所有文件，方法&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.readfilelist.aspx" target="_blank"&gt;ReadFileList&lt;/a&gt;会默认读取第1个备份的文件组成内容。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111090129149017.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111090129181063.png" border="0" height="529" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;基本了解方法&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.aspx" target="_blank"&gt;Restore类&lt;/a&gt;中的方法&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.readbackupheader.aspx" target="_blank"&gt;ReadBackupHeader&lt;/a&gt; 和 &lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.readfilelist.aspx" target="_blank"&gt;ReadFileList&lt;/a&gt;，我们接下来的就要实现如何还原数据库，在&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.aspx" target="_blank"&gt;Restore类&lt;/a&gt;提供有一个还原数据库的方法&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.sqlrestore.aspx"&gt;SqlRestore&lt;/a&gt;。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$serverInstance="WINSERVER01\SQL2008DE01" &lt;br /&gt;$userName="sa"&lt;br /&gt;$password="sql20081"&lt;br /&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("System.&lt;span style="color: #0000ff"&gt;Data&lt;/span&gt;") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;$ServerConnection =&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; "Microsoft.SqlServer.Management.Common.ServerConnection" $serverInstance,$userName, $password  &lt;br /&gt;$Server=&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; "Microsoft.SqlServer.Management.Smo.Server" $ServerConnection&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; "Microsoft.SqlServer.Management.Smo.&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;"  &lt;br /&gt;&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;.Devices.AddDevice("E:\DBBackup\test.bak", [Microsoft.SqlServer.Management.Smo.DeviceType]::&lt;span style="color: #0000ff"&gt;File&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;.&lt;span style="color: #0000ff"&gt;Database&lt;/span&gt;="test"&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;.FileNumber=1&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;.ReplaceDatabase=$&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;.Script($Server)&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;.SqlRestore($Server)&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/20111109012922633.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111090129267205.png" border="0" height="422" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;调用方法&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.sqlrestore.aspx"&gt;SqlRestore&lt;/a&gt;的时候，我们需要先设置对象$Restore的一些属性，如，&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;$Restore.Database="test" #数据库名 &#xD;
  &lt;br /&gt;$Restore.FileNumber=1 #备份文件编号，当一个备份文件包含多个备份的时候，需要设置哪一个文件编号，不然系统会默认还原文件编号为1的备份。 &#xD;
&#xD;
  &lt;br /&gt;$Restore.ReplaceDatabase=$true #是否覆盖现有数据库&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;代码$Restore.Script($Server)，只是显示出还原的Transact-SQL语句。当然还有其他的属性，如&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;$Restore.Action 描述还原的是数据库还是日志，默认是数据库.&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;$Restore.KeepReplication 描述是否保留复制设置。默认保留。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;$Restore.NoRecovery 描述指定不发生回滚。从而使前滚按顺序在下一条语句中继续进行。如，当还原(完整+差异) 或还原(完整+事务日志)，需要设置。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;有些时候我们还原数据库，碰到一些应用程序正在使用要还原的数据库。那么我们需要先终止对应的进程，不然还原会报错。在&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.aspx" target="_blank"&gt;Restore类&lt;/a&gt;没有提供终止进程的方法，需要借助&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.server.aspx"&gt;Server&lt;/a&gt;类的方法&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.server.killallprocesses.aspx"&gt;KillAllProcesses&lt;/a&gt;来删除某一数据库的所有进程。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$Server.KillAllProcesses($&lt;span style="color: #0000ff"&gt;Restore&lt;/span&gt;.&lt;span style="color: #0000ff"&gt;Database&lt;/span&gt;)&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111090129282481.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111090129318313.png" border="0" height="343" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;S&lt;/strong&gt;&lt;strong&gt;ystem.Data.DataTable&lt;/strong&gt;&lt;strong&gt;类&#xD;
      &lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在前面我們說到&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.aspx"&gt;Restore类&lt;/a&gt;的方法&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.readbackupheader.aspx"&gt;ReadBackupHeader&lt;/a&gt; 和 &lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.readfilelist.aspx"&gt;ReadFileList&lt;/a&gt;能返回一個&lt;a href="http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx"&gt;DataTable&lt;/a&gt;对象，我们在后面的例子中会使用到&lt;a href="http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx"&gt;DataTable&lt;/a&gt;对象，来存储备份的标头信息和文件组成信息。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("System.&lt;span style="color: #0000ff"&gt;Data&lt;/span&gt;") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;$ReadBackupHeader=&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; "System.&lt;span style="color: #0000ff"&gt;Data&lt;/span&gt;.DataTable"&lt;br /&gt;$ReadBackupHeader.Columns.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;("DatabaseName","String") |&lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;$ReadBackupHeader.Columns.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;("BackupType","Int16") |&lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;$ReadBackupHeader.Columns.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;("BackupStartDate","DateTime") |&lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;$ReadBackupHeader.Columns.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;("BakFile","String") |&lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;$ReadBackupHeader.Columns.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;("NoRecovery","&lt;span style="color: #0000ff"&gt;Boolean&lt;/span&gt;") |&lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;$ReadBackupHeader.Columns.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;("&lt;span style="color: #0000ff"&gt;Position&lt;/span&gt;","Int16") |&lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$ReadFileList=&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; "System.&lt;span style="color: #0000ff"&gt;Data&lt;/span&gt;.DataTable"&lt;br /&gt;$ReadFileList.Columns.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;("DatabaseName","String") |&lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;$ReadFileList.Columns.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;("LogicalName","String") |&lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;$ReadFileList.Columns.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;("PhysicalName","String") |&lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;$ReadFileList.Columns.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;("Type","String") |&lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;$ReadFileList.Columns.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;("FileId","Int16") |&lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;$ReadFileList.Columns.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;("BakFile","String") |&lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;$ReadFileList.Columns.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;("FileNumber","Int16") |&lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;定义$ReadBackupHeaderd对象來存储&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.aspx"&gt;Restore类&lt;/a&gt;的方法&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.readbackupheader.aspx"&gt;ReadBackupHeader&lt;/a&gt;返回的结果集。定义$ReadFileList对象來存储&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.aspx"&gt;Restore类&lt;/a&gt;的方法&lt;a href="http://technet.microsoft.com/zh-cn/library/microsoft.sqlserver.management.smo.restore.readfilelist.aspx"&gt;ReadFileList&lt;/a&gt;返回的结果集。后面的实际例子我们还将应用到增加和删除行的方法.&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;#增加行&lt;br /&gt;$newRow=$ReadBackupHeader.NewRow()&lt;br /&gt;$newRow["DatabaseName"]="myDB"&lt;br /&gt;$newRow["BackupType"]=2&lt;br /&gt;$newRow["BackupStartDate"]="2011-11-8"&lt;br /&gt;$newRow["BakFile"]=""&lt;br /&gt;$newRow["NoRecovery"]=$&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;br /&gt;$newRow["&lt;span style="color: #0000ff"&gt;Position&lt;/span&gt;"]=1&lt;br /&gt;$ReadBackupHeader.&lt;span style="color: #0000ff"&gt;Rows&lt;/span&gt;.&lt;span style="color: #0000ff"&gt;Add&lt;/span&gt;($newRow)&lt;br /&gt;$ReadBackupHeader.AcceptChanges()&lt;br /&gt;&lt;br /&gt;#显示行&lt;br /&gt;$ReadBackupHeader | Format-&lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; -AutoSize -Wrap&lt;br /&gt;&lt;br /&gt;#刪除行&lt;br /&gt;$ReadBackupHeader.&lt;span style="color: #0000ff"&gt;Rows&lt;/span&gt;[0].&lt;span style="color: #0000ff"&gt;Delete&lt;/span&gt;()&lt;br /&gt;$ReadBackupHeader.AcceptChanges()&lt;br /&gt;&lt;br /&gt;#显示行&lt;br /&gt;$ReadBackupHeader | Format-&lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; -AutoSize -Wrap&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111092222264401.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111092222305924.png" border="0" height="612" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;代码中有两行&amp;#8220;$ReadBackupHeader.AcceptChanges()&amp;#8221;描述结束编辑状态。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;提示&lt;/strong&gt;，引用MSDN对AcceptChanges方法的描述&lt;em&gt;：在调用&lt;/em&gt;&lt;em&gt; AcceptChanges 时，&lt;/em&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.data.datarow.endedit.aspx"&gt;&lt;em&gt;EndEdit&lt;/em&gt;&lt;/a&gt;&lt;em&gt; 方法被隐式调用，以便终止任何编辑。 如果行的 &lt;/em&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.data.datarow.rowstate.aspx"&gt;&lt;em&gt;RowState&lt;/em&gt;&lt;/a&gt;&lt;em&gt; 原来是&amp;#8220;Added&amp;#8221;或&amp;#8220;Modified&amp;#8221;，则 &lt;/em&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.data.datarow.rowstate.aspx"&gt;&lt;em&gt;RowState&lt;/em&gt;&lt;/a&gt;&lt;em&gt; 将变成&amp;#8220;Unchanged&amp;#8221;。 如果 &lt;/em&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.data.datarow.rowstate.aspx"&gt;&lt;em&gt;RowState&lt;/em&gt;&lt;/a&gt;&lt;em&gt; 是&amp;#8220;删除&amp;#8221;，则该行将被移除。&lt;/em&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;PowerShell&lt;/strong&gt;&lt;strong&gt;中的函数&lt;/strong&gt;&lt;/font&gt;&lt;strong&gt;&lt;font size="4"&gt;(Function)&lt;/font&gt; &#xD;
&#xD;
    &lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在本章中將應用到PowerShell中的Function。这里将应用到两种用法：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;function &amp;lt;名称&amp;gt; { &lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;begin {&amp;lt;处理语句列表&amp;gt;}&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;process {&amp;lt;处理语句列表&amp;gt;}&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;end {&amp;lt;处理语句列表&amp;gt;}&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$DBList="DBA,DBB,DBC"&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; CheckDB&lt;br /&gt;{&lt;br /&gt;    Param([String]$DBvar)&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Begin&lt;/span&gt; &lt;br /&gt;    {&lt;br /&gt;        [&lt;span style="color: #0000ff"&gt;Boolean&lt;/span&gt;]$CheckResult=$&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;    Process&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;($DBList -eq "")&lt;br /&gt;        {&lt;br /&gt;            $CheckResult=$&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;Else&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            Foreach($x &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; $DBList.Split(","))&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;($x -eq $DBvar)&lt;br /&gt;                {&lt;br /&gt;                    $CheckResult=$&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color: #0000ff"&gt;Break&lt;/span&gt;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;Return&lt;/span&gt; $CheckResult&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;CheckDB &lt;span style="color: #006080"&gt;'A'&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&#xD;
&#xD;
  &lt;br /&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111092222321233.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111092222344066.png" border="0" height="616" width="951" /&gt;&lt;/a&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;函数checkDB，主要是检查输入的$DBvar 是否在清单$DBList中。存在的时候返回True，不存在的時候返回False,有一種特殊的需求就是當$DBList為&amp;#8221;&amp;#8221;的時候。后面的实际例子将会应用到这个函数。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;函数的另外一种简单应用就是，不含Begin{},Process{},End{}部份，如&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;function &amp;lt;name&amp;gt; { &lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;param ([type]$parameter1[,[type]$parameter2])&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;lt;statement list&amp;gt; &lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; fn_UpdateRow&lt;br /&gt;{&lt;br /&gt;    Param([string]$DatabaseName,[int32]$&lt;span style="color: #0000ff"&gt;row&lt;/span&gt;)&lt;br /&gt;    $ReadBackupHeader.&lt;span style="color: #0000ff"&gt;Rows&lt;/span&gt;[$&lt;span style="color: #0000ff"&gt;row&lt;/span&gt;]["DatabaseName"]=$DatabaseName&lt;br /&gt;    $ReadBackupHeader.AcceptChanges()&lt;br /&gt;}&lt;br /&gt;$ReadBackupHeader | Format-&lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; -AutoSize -Wrap&lt;br /&gt;&lt;br /&gt;fn_UpdateRow -DatabaseName "Test" -&lt;span style="color: #0000ff"&gt;row&lt;/span&gt; 0 &lt;br /&gt;$ReadBackupHeader | Format-&lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; -AutoSize -Wrap&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111092222387574.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111092222418847.png" border="0" height="564" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;这里定义一函数fn_UpdateRow实现更新DataTable对象$ReadBackupHeader中的&amp;#8221;DatabaseName&amp;#8221;值。这里函数只作为处理过程，不返回任何值。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;PowerShell命令Get-Unique&lt;/font&gt; &#xD;
&#xD;
    &lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;前面，我们使用DataTable对象$ReadBackupHeader暂存备份的标头信息，当我们要还原一个目录下面的所有备份文件，会把各个数据库备份的标头信息，暂存至$ReadBackupHeader中，再遍历各个数据库进行还原。这里遍历数据库过程我们将应用到命令Get-Unique，过滤掉重复的数据库名称。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;e.g.&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;#遍历数据库    &lt;br /&gt;        Foreach( $db &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; $(Foreach($&lt;span style="color: #0000ff"&gt;Row&lt;/span&gt; &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; $ReadBackupHeader.&lt;span style="color: #0000ff"&gt;rows&lt;/span&gt;){$&lt;span style="color: #0000ff"&gt;Row&lt;/span&gt;["DatabaseName"]}) | Sort-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; | &lt;span style="color: #0000ff"&gt;Get&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Unique&lt;/span&gt; )&lt;br /&gt;        {&lt;br /&gt;               #还原数据库过程&lt;br /&gt;         }&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;其中&amp;#8220;$(Foreach($Row In $ReadBackupHeader.rows){$Row["DatabaseName"]})&amp;#8221;返回的是一个Array对象。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;实际例子 &lt;/font&gt;&lt;/strong&gt;&#xD;
&#xD;
  &lt;/p&gt;&lt;p&gt;&lt;font size="4"&gt;&#xD;
      &lt;/font&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
  &#xD;
&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('ae567d7e-3ee9-46e8-86fb-03480235dd91')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_ae567d7e-3ee9-46e8-86fb-03480235dd91" onclick="cnblogs_code_hide('ae567d7e-3ee9-46e8-86fb-03480235dd91',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_ae567d7e-3ee9-46e8-86fb-03480235dd91" &gt;&lt;div&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;===========================================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;#还原数据库&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;WINSERVER01\SQL2008DE01&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sa&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;sql20081&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$Path&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;E:\DBBackup\&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$DBList&lt;/span&gt;=&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$RestorePath&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;E:\DATA\SQL2008DE01\&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$StopAt&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;2011-11-8&amp;nbsp;18:28:00&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;还原到至时间点&amp;nbsp;[DateTime]&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;lt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;===========================================#&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Smo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.ConnectionInfo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.SmoExtended&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;System.Data&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|&amp;nbsp;Out-Null&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&amp;nbsp;=new-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Common.ServerConnection&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$serverInstance&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$userName&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;$password&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;=New-Object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;System.Data.DataTable&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Columns.Add(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;String&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|Out-Null&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Columns.Add(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupType&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Int16&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|Out-Null&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Columns.Add(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupStartDate&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DateTime&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|Out-Null&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Columns.Add(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BakFile&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;String&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|Out-Null&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Columns.Add(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoRecovery&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Boolean&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|Out-Null&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Columns.Add(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Position&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Int16&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|Out-Null&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadFileList&lt;/span&gt;=New-Object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;System.Data.DataTable&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadFileList&lt;/span&gt;.Columns.Add(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;String&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|Out-Null&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadFileList&lt;/span&gt;.Columns.Add(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;LogicalName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;String&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|Out-Null&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadFileList&lt;/span&gt;.Columns.Add(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;PhysicalName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;String&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|Out-Null&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadFileList&lt;/span&gt;.Columns.Add(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;String&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|Out-Null&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadFileList&lt;/span&gt;.Columns.Add(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;FileId&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Int16&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|Out-Null&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadFileList&lt;/span&gt;.Columns.Add(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BakFile&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;String&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|Out-Null&lt;br /&gt;&lt;span style="color: #800080;"&gt;$ReadFileList&lt;/span&gt;.Columns.Add(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;FileNumber&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Int16&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&amp;nbsp;|Out-Null&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;--------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;检查备份数据库清单&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;--------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Function&lt;/span&gt;&amp;nbsp;CheckDB&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Param&lt;/span&gt;([String]&lt;span style="color: #800080;"&gt;$DBvar&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Begin&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Boolean]&lt;span style="color: #800080;"&gt;$CheckResult&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Process&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$DBList&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$CheckResult&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$x&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DBList&lt;/span&gt;.Split(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$x&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DBvar&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$CheckResult&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Break&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$CheckResult&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;--------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;还原数据库函数&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;--------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Function&lt;/span&gt;&amp;nbsp;RestoreDB&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Boolean]&lt;span style="color: #800080;"&gt;$ExecResult&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;$False&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Process&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$rowsBackupHeader&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Select(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupStartDate&amp;nbsp;Asc&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$rowsBackupHeader&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$rowBackupHeader&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$rowsBackupHeader&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$File&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$rowBackupHeader&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BakFile&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$BackupType&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$rowBackupHeader&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupType&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$rowsFileList&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$ReadFileList&lt;/span&gt;.Select(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BakFile='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$File&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;And&amp;nbsp;FileNumber=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$rowBackupHeader&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Position&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.Devices.Clear()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.RelocateFiles.Clear()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.Database=&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.Devices.AddDevice(&lt;span style="color: #800080;"&gt;$File&lt;/span&gt;,&amp;nbsp;[Microsoft.SqlServer.Management.Smo.DeviceType]::File)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.ReplaceDatabase=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.KeepReplication=&lt;span style="color: #0000FF;"&gt;$False&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;不保留同步设置&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.NoRecovery=&lt;span style="color: #800080;"&gt;$rowBackupHeader&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoRecovery&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.FileNumber=&lt;span style="color: #800080;"&gt;$rowBackupHeader&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Position&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$BackupType&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;2&amp;nbsp;)&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;事务日志&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.Action=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Log&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.ToPointInTime=$(&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$StopAt&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-gt&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$rowBackupHeader&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupStartDate&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]){&lt;span style="color: #800080;"&gt;$null&lt;/span&gt;}&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&amp;nbsp;{&lt;span style="color: #800080;"&gt;$StopAt&lt;/span&gt;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.Action=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Database&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.ToPointInTime=&lt;span style="color: #800080;"&gt;$null&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$rowFileList&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$rowsFileList&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$logicalFileName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$rowFileList&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;LogicalName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$rowFileList&lt;/span&gt;.Type&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;D&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$physicalFileName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$RestorePath&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$logicalFileName&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;.mdf&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;ElseIf&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$rowFileList&lt;/span&gt;.Type&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;L&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$physicalFileName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$RestorePath&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$logicalFileName&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;.ldf&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.RelocateFiles.Add((New-Object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Smo.RelocateFile&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$logicalFileName&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$physicalFileName&lt;/span&gt;))&amp;nbsp;|Out-Null&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;清除正在当前数据库的进程&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Server&lt;/span&gt;.KillAllProcesses(&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;执行还原动作&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.SqlRestore(&lt;span style="color: #800080;"&gt;$Server&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.Wait()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;已还原数据库.&amp;nbsp;DataBase:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;`t`.FileNumber=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.FileNumber&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;`tBakFile:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$File&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ExecResult&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;$True&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Warning&amp;nbsp;&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;在数据库&amp;nbsp;$DB&amp;nbsp;.没有可还原的备份文件。&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ExecResult&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;--------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;过滤备份文件&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;--------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Function&lt;/span&gt;&amp;nbsp;FilterDB&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;完整&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$tmpRows1&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Select(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;And&amp;nbsp;BackupType=1&amp;nbsp;And&amp;nbsp;BackupStartDate&amp;lt;='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$StopAt&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupStartDate&amp;nbsp;Desc&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DateTime]&lt;span style="color: #800080;"&gt;$tmpDate&lt;/span&gt;=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1900-01-01&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$tmpRows1&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$tmpRow&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$tmpRows1&lt;/span&gt;[0]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$tmpDate&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$tmpRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupStartDate&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Select(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;And&amp;nbsp;BackupType=1&amp;nbsp;And&amp;nbsp;BakFile&amp;lt;&amp;gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$tmpRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BakFile&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;.Delete()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Select(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;And&amp;nbsp;BackupType=1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;.Delete()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;差异&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$tmpRows5&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Select(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;And&amp;nbsp;BackupType=5&amp;nbsp;And&amp;nbsp;BackupStartDate&amp;lt;='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$StopAt&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;And&amp;nbsp;BackupStartDate&amp;gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$tmpDate&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupStartDate&amp;nbsp;Desc&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$tmpRows1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-and&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$tmpRows5&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$tmpRow&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$tmpRows5&lt;/span&gt;[0]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Select(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;And&amp;nbsp;BackupType=5&amp;nbsp;And&amp;nbsp;BakFile&amp;lt;&amp;gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$tmpRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BakFile&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;.Delete()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Select(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;And&amp;nbsp;BackupType=5&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;.Delete()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;事务日志&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$tmpRows2&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Select(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;And&amp;nbsp;BackupType=2&amp;nbsp;And&amp;nbsp;BackupStartDate&amp;gt;='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$StopAt&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupStartDate&amp;nbsp;Asc&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$tmpRows1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-and&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$tmpRows2&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$tmpRow&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$tmpRows2&lt;/span&gt;[0]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Select(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;And&amp;nbsp;BackupType=2&amp;nbsp;And&amp;nbsp;BackupStartDate&amp;gt;='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$StopAt&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;And&amp;nbsp;BakFile&amp;lt;&amp;gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$tmpRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BakFile&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;.Delete()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;span style="color: #0000FF;"&gt;ElseIf&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$tmpRows1&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Select(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;And&amp;nbsp;BackupType=2&amp;nbsp;And&amp;nbsp;BackupStartDate&amp;lt;='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$tmpDate&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;.Delete()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;$ReadBackupHeader&amp;nbsp;|&amp;nbsp;Format-Table&amp;nbsp;-AutoSize&amp;nbsp;-Wrap&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Select(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&amp;nbsp;And&amp;nbsp;BackupType=2&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;.Delete()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;结束对DataTable的编辑&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.AcceptChanges()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;设置NoRecovery&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$tmpRows&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Select(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName='&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupStartDate&amp;nbsp;Desc&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$tmpRows&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style="color: #800080;"&gt;$tmpRows&lt;/span&gt;[0][&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoRecovery&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #0000FF;"&gt;$false&lt;/span&gt;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;--------------------------------------&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;Try&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.Connect()&lt;br /&gt;}&lt;br /&gt;Catch&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Error&amp;nbsp;&lt;span style="color: #800080;"&gt;$_&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;.IsOpen)&lt;br /&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Server&lt;/span&gt;=new-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Smo.Server&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ServerConnection&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;=new-object&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft.SqlServer.Management.Smo.Restore&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$StopAt&lt;/span&gt;=$(&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$StopAt&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;){&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;3000-12-31&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;}&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;{[DateTime]&lt;span style="color: #800080;"&gt;$StopAt&lt;/span&gt;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Path&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$Path&lt;/span&gt;+$(&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;($(&lt;span style="color: #800080;"&gt;$Path&lt;/span&gt;.Split(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;\&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;))[-1]&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&amp;nbsp;){&lt;span style="color: #800000;"&gt;""&lt;/span&gt;}&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&amp;nbsp;{&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;\&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$RestorePath&lt;/span&gt;=$(&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$RestorePath&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;){&lt;span style="color: #800080;"&gt;$Server&lt;/span&gt;.Settings.DefaultFile}&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;{&lt;span style="color: #800080;"&gt;$RestorePath&lt;/span&gt;})&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;数据库文件默认路径(数据&amp;amp;日志文件同一路径)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$RestorePath&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$RestorePath&lt;/span&gt;+$(&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;($(&lt;span style="color: #800080;"&gt;$RestorePath&lt;/span&gt;.Split(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;\&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;))[-1]&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&amp;nbsp;){&lt;span style="color: #800000;"&gt;""&lt;/span&gt;}&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&amp;nbsp;{&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;\&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;})&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$Bak&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;Get-ChildItem&amp;nbsp;-Path&amp;nbsp;&lt;span style="color: #800080;"&gt;$Path&lt;/span&gt;&amp;nbsp;|&amp;nbsp;Where-Object&amp;nbsp;-FilterScript&amp;nbsp;{&lt;span style="color: #800080;"&gt;$_&lt;/span&gt;.Mode&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;-a---&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;})&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;遍历备份文件夹&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$File&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$Path&lt;/span&gt;+&lt;span style="color: #800080;"&gt;$Bak&lt;/span&gt;.Name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.Devices.Clear()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.Devices.AddDevice(&lt;span style="color: #800080;"&gt;$File&lt;/span&gt;,&amp;nbsp;[Microsoft.SqlServer.Management.Smo.DeviceType]::File)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.FileNumber=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Read&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.ReadBackupHeader(&lt;span style="color: #800080;"&gt;$Server&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Read&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$newRow&lt;/span&gt;&amp;nbsp;=&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.NewRow();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$newRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$newRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupType&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupType&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$newRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupStartDate&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BackupStartDate&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$newRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BakFile&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #800080;"&gt;$File&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$newRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoRecovery&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$newRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Position&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Position&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.Rows.Add(&lt;span style="color: #800080;"&gt;$newRow&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$DBName&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.FileNumber=&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Position&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$FileRead&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.ReadFileList(&lt;span style="color: #800080;"&gt;$Server&lt;/span&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$Filerow&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$FileRead&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$FileNewRow&lt;/span&gt;&amp;nbsp;=&lt;span style="color: #800080;"&gt;$ReadFileList&lt;/span&gt;.NewRow();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$FileNewRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #800080;"&gt;$DBName&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$FileNewRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;LogicalName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #800080;"&gt;$Filerow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;LogicalName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$FileNewRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;PhysicalName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #800080;"&gt;$Filerow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;PhysicalName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$FileNewRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #800080;"&gt;$Filerow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Type&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$FileNewRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;FileId&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #800080;"&gt;$Filerow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;FileId&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$FileNewRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BakFile&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #800080;"&gt;$File&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$FileNewRow&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;FileNumber&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]=&lt;span style="color: #800080;"&gt;$Restore&lt;/span&gt;.FileNumber&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReadFileList&lt;/span&gt;.Rows.Add(&lt;span style="color: #800080;"&gt;$FileNewRow&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;结束对DataTable的编辑&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.AcceptChanges()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReadFileList&lt;/span&gt;.AcceptChanges()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;遍历数据库&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;(&amp;nbsp;&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;$(&lt;span style="color: #0000FF;"&gt;Foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$Row&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ReadBackupHeader&lt;/span&gt;.rows){&lt;span style="color: #800080;"&gt;$Row&lt;/span&gt;[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DatabaseName&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;]})&amp;nbsp;|&amp;nbsp;Sort-Object&amp;nbsp;|&amp;nbsp;Get-Unique&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;(CheckDB(&lt;span style="color: #800080;"&gt;$db&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #008080;"&gt;-eq&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;$true&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;检查备份数据库清单&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;过滤备份&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FilterDB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;还原数据库&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$Result&lt;/span&gt;=RestoreDB&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Catch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Error&amp;nbsp;&lt;span style="color: #800080;"&gt;$_&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111090129358964.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111090129394423.png" border="0" height="505" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;上面脚本能实现的是，在一个目录下存在着各个数据库的完整、差异、事务日志备份文件，可以根据设置&amp;#8220;还原至时间点&amp;#8221;还原某一个时间点的数据库。支持一个备份文件包含多个备份，支持自定义还原数据库清单。以上的脚本在PowerShell 2.0 + SQL Server2005+WinXP 和PowerShell 2.0 + SQL Server2008 R2+Windows Server 2008 R2 測試通過。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;小結&#xD;
      &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;本章我们描述了PowerShell2.0的一个应用，批量还原数据库，支持完整、差异、事务日志备份文件，并对其中的一些知识要点提取出来说明，让我们对PowerShell 2.0 有进一步的了解。在真实中，一些时候，特别是要在数据库后台批量处理一些任务，我们发觉PowerShell能为我们带来许多的方便。当然了，这里只是取1个批量的还原的例子，在实际的应用中，我们也许会碰到比当前例子更为复杂的情况，如页面还原、段落还原、联机还原等。可根据特定的场景，修改或编写更为复杂的脚本。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wghao/aggbug/2241903.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wghao/archive/2011/11/09/2241903.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wghao/archive/2011/11/04/2235220.html</id><title type="text">PowerShell应用之-生成创建表的Transact-SQL脚本</title><summary type="text">开始 在上一篇《PowerShell应用之-(SMO) 类库》，我们对SMO类库的应用有了基本的了解，在这里我们将继续对SMO类库进一步了解。在这篇，涉及这几个内容： 表对象(Table) 脚本选项(ScriptingOptions) Sort-Object命令 Get-Date命令 Out-File命令 下面我们着重描述表对象和脚本选项两个部分，其他部分写在后面的完整代码中。 表对象(Table) 要生成创建表的Transact-SQL脚本，先要找到着手点。在SMO类库中，Microsoft.SqlServer.Man...</summary><published>2011-11-03T16:54:00Z</published><updated>2011-11-03T16:54:00Z</updated><author><name>OK_008</name><uri>http://www.cnblogs.com/wghao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wghao/archive/2011/11/04/2235220.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wghao/archive/2011/11/04/2235220.html"/><content type="html">&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;开始       &lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt;在上一篇《&lt;a href="http://www.cnblogs.com/wghao/archive/2011/11/03/2233829.html" target="_blank"&gt;PowerShell应用之-(SMO) 类库&lt;/a&gt;》，我们对SMO类库的应用有了基本的了解，在这里我们将继续对SMO类库进一步了解。在这篇，涉及这几个内容：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;表对象(Table)&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;脚本选项(ScriptingOptions)&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Sort-Object命令&lt;/li&gt;    &lt;li&gt;Get-Date命令&lt;/li&gt;    &lt;li&gt;Out-File命令&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;下面我们着重描述表对象和脚本选项两个部分，其他部分写在后面的完整代码中。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;表对象(Table)       &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt;要生成创建表的Transact-SQL脚本，先要找到着手点。在SMO类库中，Microsoft.SqlServer.Management.Smo.Table类中有两个方法,Script()和Script(ScriptingOptions)能为我们提供创建表的Transact-SQL脚本。如果我们要生成一个实例下的一个数据库里面所有表的脚本，我们要借助Microsoft.SqlServer.Management.Smo.Server类下的Databases属性，在Databases属性包含有数据库对象集合。我们接着可以在Databases对象集合中找到Tables属性，它包含有对应数据库的表对象(Table)集合.这一过程就是一层一层的往下检索对应的对象，犹如Tree列表，一层一层的往下搜。&lt;/p&gt;  &lt;p&gt;e.g.&amp;lt;代码01&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&amp;lt;#===========================================#&amp;gt;&lt;br /&gt;$serverInstance="WINSERVER01\SQL2008DE01" &lt;br /&gt;$userName="sa"&lt;br /&gt;$password="sql20081"&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;DataBase&lt;/span&gt;="test"&lt;br /&gt;&lt;br /&gt;&amp;lt;#===========================================#&amp;gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;$ServerConnection =&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; "Microsoft.SqlServer.Management.Common.ServerConnection" $serverInstance,$userName, $password  &lt;br /&gt;&lt;br /&gt;Try&lt;br /&gt;{&lt;br /&gt;    $ServerConnection.&lt;span style="color: #0000ff"&gt;Connect&lt;/span&gt;()&lt;br /&gt;}&lt;br /&gt;Catch&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-Error $_&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;($ServerConnection.IsOpen)&lt;br /&gt;{&lt;br /&gt;    #获得数据库中的用户表&lt;br /&gt;    $Tables=((&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; "Microsoft.SqlServer.Management.Smo.Server" $ServerConnection).databases[$&lt;span style="color: #0000ff"&gt;DataBase&lt;/span&gt;]).tables | &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; -FilterScript{$_.IsSystemObject -eq $&lt;span style="color: #0000ff"&gt;False&lt;/span&gt;}&lt;br /&gt;    &lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;我们在Windows PowerShell ISE上编写上面&amp;lt;代码01&amp;gt;。&amp;#8220;获得数据库中用户表&amp;#8221;的那行代码我们已作简化，要是一层一层的应用可以这样写：&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$Server=&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; "Microsoft.SqlServer.Management.Smo.Server" $ServerConnection&lt;br /&gt;    $DataBases=$Server.Databases&lt;br /&gt;    $Tables=$DataBases.tables  | &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; -FilterScript{$_.IsSystemObject -eq $&lt;span style="color: #0000ff"&gt;False&lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;在获取数据库中的用户表代码行中，应用到了Where-Object命令 把系统创建的表给过滤掉。在Table对象中的属性IsSystemObject就是描述是否是系统表。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;脚本选项(ScriptingOptions)&#xD;
      &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;前面我们提到Microsoft.SqlServer.Management.Smo.Table类中有两个方法,Script()和Script(ScriptingOptions)能生成创建表的脚本。Script()方法是最简单的方法，不过生成的脚本中不包含外键，主键等约束，也没有能生成索引。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111040052025213.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111040052038146.png" border="0" height="209" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;为了能把脚本生成得更完整，我们这里调用第二种方法Script(ScriptingOptions),通过设置脚本选项(ScriptingOptions)来生成所需要的脚本。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;脚本选项，是ScriptingOptions对象，它对应的类是Microsoft.SqlServer.Management.Smo.ScriptingOptions类。ScriptingOptions对象能为我们提供丰富的对象脚本选项.&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;#腳本选项设置&lt;br /&gt;    $ScriptingOptions = &lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; "Microsoft.SqlServer.Management.Smo.ScriptingOptions"&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111040052057948.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111040052075275.png" border="0" height="197" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;通过命令&amp;#8220;$ScriptingOptions | Get-Member&amp;#8221;，可以查到到脚本选项包含的属性，也可以直接执行命令&amp;#8221;$ScriptingOptions&amp;#8221;查看当前的脚本选项，&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111040052082950.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111040052106406.png" border="0" height="308" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/20111104005211177.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111040052123633.png" border="0" height="276" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;我们还可以通过设置$ScriptingOptions中的各个属性描述生成脚本的内容格式等。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$ScriptingOptions.DriAllKeys         = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.DriClustered       = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.DriAllConstraints  = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;     &lt;br /&gt;    $ScriptingOptions.DriDefaults        = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.DriIndexes         = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.DriNonClustered    = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.DriPrimaryKey      = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.DriUniqueKeys      = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;     &lt;br /&gt;    $ScriptingOptions.AnsiFile           = $&lt;span style="color: #0000ff"&gt;False&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.ClusteredIndexes   = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.IncludeHeaders     = $&lt;span style="color: #0000ff"&gt;False&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.Indexes            = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.SchemaQualify      = $&lt;span style="color: #0000ff"&gt;False&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.Triggers           = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.XmlIndexes         = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.ExtendedProperties = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.NoFileGroup        = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.NoCollation        = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.IncludeIfNotExists = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.NoIdentities       = $True&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;可根据实际需要来设置，这里只是列出部分的内容及设置。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.生成脚本&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;foreach($t &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; $Tables)&lt;br /&gt;    {&lt;br /&gt;        $t.Script($ScriptingOptions)&lt;br /&gt;    }&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111040052189974.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111040052249936.png" border="0" height="675" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;考虑存在外键&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;上面的生成脚本，执行后直接能在PowerShell控制台显示出来，但我们需要判断外键约束的时候，生成要有先后顺序，要把脚本保存为&amp;#8221;.sql&amp;#8221;格式文件，而且脚本文件名包含有生成的日期。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;为了能对于有外键的表需要注意生成顺序，我们引用了命令Sort-Object把表中的CreateDate和表ID进行排序即可。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;foreach($t &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; $Tables  | Sort-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; -Property CreateDate,ID)&lt;br /&gt;    {&lt;br /&gt;        $t.Script($ScriptingOptions)&lt;br /&gt;    }&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;CreateDate创建日期比较早的排序在前，当创建日期相同，再按表的ID升序排序，这样即可应付存在外键的情况。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111040052265736.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111040052295471.png" border="0" height="292" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;完整的代码&#xD;
      &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&amp;lt;#===========================================#&amp;gt;&lt;br /&gt;##生成创建表的脚本，包含Constraints,Indexes,Triggers&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$serverInstance="WINSERVER01\SQL2008DE01" &lt;br /&gt;$userName="sa"&lt;br /&gt;$password="sql20081"&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;DataBase&lt;/span&gt;="ReplicationDB"&lt;br /&gt;$SrciptOutputPath="E:\"&lt;br /&gt;&lt;br /&gt;&amp;lt;#===========================================#&amp;gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;$ServerConnection =&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; "Microsoft.SqlServer.Management.Common.ServerConnection" $serverInstance,$userName, $password  &lt;br /&gt;&lt;br /&gt;Try&lt;br /&gt;{&lt;br /&gt;    $ServerConnection.&lt;span style="color: #0000ff"&gt;Connect&lt;/span&gt;()&lt;br /&gt;}&lt;br /&gt;Catch&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-Error $_&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;($ServerConnection.IsOpen)&lt;br /&gt;{    &lt;br /&gt;    #腳本选项设置&lt;br /&gt;    $ScriptingOptions = &lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; "Microsoft.SqlServer.Management.Smo.ScriptingOptions"&lt;br /&gt;    $ScriptingOptions.DriAllKeys         = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.DriClustered       = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.DriAllConstraints  = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;     &lt;br /&gt;    $ScriptingOptions.DriDefaults        = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.DriIndexes         = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.DriNonClustered    = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.DriPrimaryKey      = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.DriUniqueKeys      = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;     &lt;br /&gt;    $ScriptingOptions.AnsiFile           = $&lt;span style="color: #0000ff"&gt;False&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.ClusteredIndexes   = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.IncludeHeaders     = $&lt;span style="color: #0000ff"&gt;False&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.Indexes            = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.SchemaQualify      = $&lt;span style="color: #0000ff"&gt;False&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.Triggers           = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.XmlIndexes         = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.ExtendedProperties = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.NoFileGroup        = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.NoCollation        = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.IncludeIfNotExists = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;    $ScriptingOptions.NoIdentities       = $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    #获得数据库中的用户表&lt;br /&gt;    $Tables=((&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; "Microsoft.SqlServer.Management.Smo.Server" $ServerConnection).databases[$&lt;span style="color: #0000ff"&gt;DataBase&lt;/span&gt;]).tables | &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; -FilterScript{$_.IsSystemObject -eq $&lt;span style="color: #0000ff"&gt;False&lt;/span&gt;}&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;($Tables)&lt;br /&gt;    {&lt;br /&gt;        [System.Text.StringBuilder]$Sript="&lt;span style="color: #0000ff"&gt;Use&lt;/span&gt; ["+$&lt;span style="color: #0000ff"&gt;DataBase&lt;/span&gt;+"]`nGo`n"&lt;br /&gt;        [&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;]$&lt;span style="color: #0000ff"&gt;count&lt;/span&gt;=1&lt;br /&gt;        &lt;br /&gt;        #刪除腳本&lt;br /&gt;        foreach($tb &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; $Tables | Sort-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; -Property CreateDate,ID -Descending)&lt;br /&gt;        {&lt;br /&gt;            $i=$Sript.AppendLine("&lt;span style="color: #0000ff"&gt;If&lt;/span&gt; object_id(&lt;span style="color: #006080"&gt;'[" +$Tb.Name+ "]'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;Is&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt; `n`t  &lt;span style="color: #0000ff"&gt;Drop&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; ["+ $Tb.Name+ "]")&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        #创建脚本&lt;br /&gt;        foreach($tb &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; $Tables | Sort-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; -Property CreateDate,ID)&lt;br /&gt;        {&lt;br /&gt;            foreach($s &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; $tb.Script($ScriptingOptions))&lt;br /&gt;            {    &lt;br /&gt;                $i=$Sript.AppendLine($s)&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "處理完表 (" $&lt;span style="color: #0000ff"&gt;count&lt;/span&gt; "/" $Tables.&lt;span style="color: #0000ff"&gt;Count&lt;/span&gt; ")"  ": " $tb.Name  &lt;br /&gt;            $&lt;span style="color: #0000ff"&gt;count&lt;/span&gt;+=1       &lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        $i=$Sript.AppendLine("&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;")&lt;br /&gt;        &lt;br /&gt;        #输出脚本&lt;br /&gt;        [string]$&lt;span style="color: #0000ff"&gt;Path&lt;/span&gt;=$SrciptOutputPath+$&lt;span style="color: #0000ff"&gt;DataBase&lt;/span&gt;+"-"+(&lt;span style="color: #0000ff"&gt;Get&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Date&lt;/span&gt; -format yyyyMMdd)+".&lt;span style="color: #0000ff"&gt;sql&lt;/span&gt;"&lt;br /&gt;        $Sript.ToString() | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;File&lt;/span&gt; -FilePath $&lt;span style="color: #0000ff"&gt;Path&lt;/span&gt;            &lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Else&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-Error "无效的数据库： $&lt;span style="color: #0000ff"&gt;DataBase&lt;/span&gt; 。或在数据库中找不到对应的表！"&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111040052311652.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111040052335042.png" border="0" height="308" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;小结&#xD;
      &lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;上面描述了通过PowerShell 2.0生成创建表的Transact-SQL脚本，包含创建表，约束，外键，默认值，触发器和索引。可以根据自己实际的场景需要，修改部分的脚本选项。当然我在测试上面的脚本中，发现Table.Script(ScriptingOptions)方法生成脚本的方法比较慢，特别是一个数据库中包含有100以上的表，就感觉到缓慢，这方面有待优化提高。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wghao/aggbug/2235220.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wghao/archive/2011/11/04/2235220.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wghao/archive/2011/11/03/2233829.html</id><title type="text">PowerShell应用之-(SMO) 类库</title><summary type="text">SMO类库描述 在命名空间Microsoft.SqlServer.Management.Smo下提供有丰富的类库，来描述SQL Server数据库引擎核心对象，包含实例(instances)、数据库(databases),表(tables),存储过程(stored procedures)和视图(views)。它能为我们实现： 连接SQL Server实例 查询和修改实例设置(instance settings)和配置选项(configuration options) 查询和修改数据库对象 在SQL Server实例执行DDL(data definiti...</summary><published>2011-11-02T16:43:00Z</published><updated>2011-11-02T16:43:00Z</updated><author><name>OK_008</name><uri>http://www.cnblogs.com/wghao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wghao/archive/2011/11/03/2233829.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wghao/archive/2011/11/03/2233829.html"/><content type="html">&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;SMO类库描述       &lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt;在命名空间Microsoft.SqlServer.Management.Smo下提供有丰富的类库，来描述SQL Server数据库引擎核心对象，包含实例(instances)、数据库(databases),表(tables),存储过程(stored procedures)和视图(views)。它能为我们实现：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;连接SQL Server实例&lt;/li&gt;    &lt;li&gt;查询和修改实例设置(instance settings)和配置选项(configuration options)&lt;/li&gt;    &lt;li&gt;查询和修改数据库对象&lt;/li&gt;    &lt;li&gt;在SQL Server实例执行DDL(data definition language)操作&lt;/li&gt;    &lt;li&gt;生成数据库对象脚本&lt;/li&gt;    &lt;li&gt;执行数据库维护任务，如备份和还原操作&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;下面我们测试其中一两个例子描述它的应用。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;连接SQL Server实例       &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt;连接SQL Server实例，我们需要应用到命名空间Microsoft.SqlServer.Management.Smo空间下的Server类。&lt;/p&gt;  &lt;p&gt;e.g.&amp;lt;Scripts01&amp;gt;&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$serverInstance="WINSERVER01\SQL2008DE01" #&lt;span style="color: #0000ff"&gt;SQL&lt;/span&gt; Server实例名&lt;br /&gt;$userName="sa" #登录账号&lt;br /&gt;$password="sql20081" #登录密码&lt;br /&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt; #加载程序集Microsoft.SqlServer.Smo&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;  #加载程序集Microsoft.SqlServer.ConnectionInfo&lt;br /&gt;$ServerConnection =&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; "Microsoft.SqlServer.Management.Common.ServerConnection" $serverInstance,$userName, $password &lt;br /&gt;$Server=&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; "Microsoft.SqlServer.Management.Smo.Server" $ServerConnection&lt;br /&gt;&lt;br /&gt;Try&lt;br /&gt;{&lt;br /&gt;    $ServerConnection.&lt;span style="color: #0000ff"&gt;Connect&lt;/span&gt;()&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "实例" $serverInstance "连接OK！" &lt;br /&gt;}&lt;br /&gt;Catch&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-Error "实例" $serverInstance "无法连接！" &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111030040333846.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111030040363516.png" border="0" height="406" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;lt;Scripts01&amp;gt;中代码：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null #加载程序集Microsoft.SqlServer.Smo&#xD;
  &lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | Out-Null&amp;nbsp; #加载程序集Microsoft.SqlServer.ConnectionInfo&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;描述加载的程序集，我们在应用命名空间Microsoft.SqlServer.Smo下的各个类库都需要先加载对应的程序集。如这里用到的类Microsoft.SqlServer.Management.Smo.Server对应的程序集是Microsoft.SqlServer.Smo,类Microsoft.SqlServer.Management.Common.ServerConnection，对应的程序集是Microsoft.SqlServer.ConnectionInfo。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;span style="color: red;"&gt;&amp;nbsp;&lt;/span&gt;&lt;em style="color: red;"&gt;我这里看到&lt;/em&gt;&lt;div style="color: red;"&gt;&lt;em&gt;[System.Reflection.Assembly]::Load()无法应用。在PowerShell 2.0中反而应用到&amp;nbsp;&lt;/em&gt;&lt;div&gt;&lt;em&gt;[System.Reflection.Assembly]::LoadWithPartialName()&lt;/em&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;看MSDN的时候，提到 &lt;/em&gt;&lt;div&gt;&lt;em&gt;[System.Reflection.Assembly]::LoadWithPartialName()&lt;/em&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;在.Net Framework 2.0之后已过时。这是我感觉比较纠结的 位置。&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;查询和修改实例设置(instance settings)和配置选项(configuration options)&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;当我们连接上SQL Server实例后，我们可以提供类Server提供的属性Settings和属性configuration options，来修改设置和配置选项。我例子沿用上边的例子，继续。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&amp;lt;Scripts02&amp;gt;查询部分：&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ($ServerConnection.IsOpen -eq $&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;    $Settings=$Server.Settings&lt;br /&gt;    $Configuration=$Server.Configuration&lt;br /&gt;    &lt;br /&gt;    #显示设置&lt;br /&gt;    $Settings&lt;br /&gt;    &lt;br /&gt;    #显示配置选项&lt;br /&gt;    "MinServerMemory : " + [&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;]$Configuration.MinServerMemory.RunValue +"MB"&lt;br /&gt;    "MaxServerMemory : " + [&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;]$Configuration.MaxServerMemory.RunValue +"MB"&lt;br /&gt;    "IsSqlClrEnabled : " + [&lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt;]$Configuration.IsSqlClrEnabled.RunValue&lt;br /&gt;    "RemoteDacConnectionsEnabled : " + [&lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt;]$Configuration.RemoteDacConnectionsEnabled.RunValue&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111030040412987.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111030040466429.png" border="0" height="639" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;这里只是列出settings和configuration options的一小部分内容。如果想了解更多的信息可以通过get-member获取对应的属性，再输出到PowerShell控制台。我们不引可以查询settings和configuration options的内容，还可以修改它们的内容。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&amp;lt;Scripts03&amp;gt;修改部分：&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;#修改设置&lt;br /&gt;$Settings.DefaultFile="E:\&lt;span style="color: #0000ff"&gt;DATA&lt;/span&gt;" #修改前是&amp;#8220; E:\&lt;span style="color: #0000ff"&gt;DATA&lt;/span&gt;\SQL2008DE01&amp;#8221;&lt;br /&gt;$Settings.DefaultLog="E:\&lt;span style="color: #0000ff"&gt;DATA&lt;/span&gt;" #修改前是&amp;#8220; E:\&lt;span style="color: #0000ff"&gt;DATA&lt;/span&gt;\SQL2008DE01&amp;#8221;&lt;br /&gt;&lt;br /&gt;$Configuration.IsSqlClrEnabled.ConfigValue=0 #修改前是1&lt;br /&gt;$Server.&lt;span style="color: #0000ff"&gt;Alter&lt;/span&gt;()&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/20111103004049210.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111030040527404.png" border="0" height="328" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;lt;Scripts03&amp;gt;如果我们使用的是编辑器是Windows PowerShell ISE，一样可以执行所选的部分代码。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;lt;Scripts03&amp;gt;代码中，说明一点修改设置的时候，最后必须调用实例对象$Server的Alter()方法，不然不会应用到SQL Server实例中。我们这里可以检查修改后的实例信息：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111030040535669.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111030040568960.png" border="0" height="627" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111030040568371.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111030040586810.png" border="0" height="253" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;实际应用例子&#xD;
      &lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;这里是一个实际中的例子，脚本的功能，主要是查询出某一个实例中的默认数据库路径，实例登录账号、数据库列表。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;lt;Scripts04&amp;gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&amp;lt;#===========================================#&amp;gt;&lt;br /&gt;&lt;br /&gt;$serverInstance="WINSERVER01\SQL2008DE01" &lt;br /&gt;$userName="sa"&lt;br /&gt;$password="sql20081"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;#===========================================#&amp;gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | &lt;span style="color: #0000ff"&gt;Out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;$ServerConnection =&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; "Microsoft.SqlServer.Management.Common.ServerConnection" $serverInstance,$userName, $password  &lt;br /&gt;&lt;br /&gt;Try&lt;br /&gt;{$ServerConnection.&lt;span style="color: #0000ff"&gt;Connect&lt;/span&gt;()}&lt;br /&gt;Catch&lt;br /&gt;{&lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-Error $_}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;($ServerConnection.IsOpen -eq $&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;)&lt;br /&gt;{    &lt;br /&gt;&lt;br /&gt;    $Server=&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; "Microsoft.SqlServer.Management.Smo.Server" $ServerConnection&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "Server Name  :" $Server.Name&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "======================= Settings ================================"&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "DefaultFile  : " $Server.Settings.DefaultFile&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "DefaultLog   : " $Server.Settings.DefaultLog&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "======================= Configuration ================================"&lt;br /&gt;    "XPCmdShellEnabled              : "+ [&lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt;]$Server.Configuration.XPCmdShellEnabled.RunValue&lt;br /&gt;    "DatabaseMailEnabled            : "+ [&lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt;]$Server.Configuration.DatabaseMailEnabled.RunValue&lt;br /&gt;    "IsSqlClrEnabled                : "+ [&lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt;]$Server.Configuration.IsSqlClrEnabled.RunValue&lt;br /&gt;    "SqlMailXPsEnabled              : "+ [&lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt;]$Server.Configuration.SqlMailXPsEnabled.RunValue&lt;br /&gt;    "DatabaseMailEnabled            : "+ [&lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt;]$Server.Configuration.DatabaseMailEnabled.RunValue&lt;br /&gt;    "OleAutomationProceduresEnabled : "+ [&lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt;]$Server.Configuration.OleAutomationProceduresEnabled.RunValue&lt;br /&gt;    "AdHocDistributedQueriesEnabled : "+ [&lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt;]$Server.Configuration.AdHocDistributedQueriesEnabled.RunValue&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "======================= Logins ================================"&lt;br /&gt;    $Server.Logins | Format-&lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; -AutoSize -Wrap -Property Name,CreateDate,IsDisabled,LoginType,IsSystemObject&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "======================= DataBases ================================"&lt;br /&gt;    $Server.Databases| Sort-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; -Property @{Expression="IsSystemObject";Descending=$&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;},@{Expression="ID";Ascending=$&lt;span style="color: #0000ff"&gt;True&lt;/span&gt;}  | Format-&lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; -AutoSize -Wrap -Property Name,IsSystemObject,&lt;span style="color: #0000ff"&gt;Size&lt;/span&gt;,Status,CreateDate,PrimaryFilePath&lt;br /&gt;}    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111030041009054.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111030041083769.png" border="0" height="746" width="951" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;小结&#xD;
      &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;以上是举例子简单描述如何通过PowerShell 2.0，调用命名空间Microsoft.SqlServer.Management.Smo下的类库，管理数据库实例。在真实的场景中，我们碰到更复杂的应用。不管如何，我们需要应用到SMO类库，具体的用法可以参阅：&lt;a title="http://technet.microsoft.com/en-us/library/gg720307.aspx" href="http://technet.microsoft.com/en-us/library/gg720307.aspx"&gt;http://technet.microsoft.com/en-us/library/gg720307.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wghao/aggbug/2233829.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wghao/archive/2011/11/03/2233829.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wghao/archive/2011/11/02/2227219.html</id><title type="text">临时表 Vs 表变量</title><summary type="text">开始 说临时表和表变量，这是一个古老的话题，我们在网上也找到很多的资料阐述两者的特征，优点与缺点。这里我们在SQL Server 2005\SQL Server 2008版本上通过举例子，说明临时表和表变量两者的一些特征，让我们对临时表和表变量有进一步的认识。在本章中，我们将从下面几个方面去进行描述，对其中的一些特征举例子说明： 约束(Constraint) 索引(Index) I/0开销 作用域(scope) 存儲位置 其他 例子描述 约束(Constraint) 在临时表和表变量，都可以创建Constrain...</summary><published>2011-11-01T17:00:00Z</published><updated>2011-11-01T17:00:00Z</updated><author><name>OK_008</name><uri>http://www.cnblogs.com/wghao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wghao/archive/2011/11/02/2227219.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wghao/archive/2011/11/02/2227219.html"/><content type="html">&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;开始 &lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;hr /&gt;    &lt;p&gt;说临时表和表变量，这是一个古老的话题，我们在网上也找到很多的资料阐述两者的特征，优点与缺点。这里我们在SQL Server 2005\SQL Server 2008版本上通过举例子，说明临时表和表变量两者的一些特征，让我们对临时表和表变量有进一步的认识。在本章中，我们将从下面几个方面去进行描述，对其中的一些特征举例子说明：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;约束(Constraint) &lt;/li&gt;    &lt;li&gt;索引(Index) &lt;/li&gt;    &lt;li&gt;I/0开销 &lt;/li&gt;    &lt;li&gt;作用域(scope) &lt;/li&gt;    &lt;li&gt;存儲位置&lt;/li&gt;    &lt;li&gt;其他&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;例子描述 &lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;hr /&gt;    &lt;p&gt;&lt;strong&gt;约束(Constraint)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;在临时表和表变量，都可以创建Constraint。针对表变量，只有定义时能加Constraint。&lt;/p&gt;  &lt;p&gt;e.g.在Microsoft SQL Server Management Studio（MSSMS）查询中，创建临时表并建Constraint场景，&amp;lt;脚本S1.&amp;gt;&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;Use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; object_id(&lt;span style="color: #006080"&gt;'Tempdb..#1'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;Is&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Null&lt;/span&gt; &lt;br /&gt;   &lt;span style="color: #0000ff"&gt;Drop&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1                &lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Create&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1&lt;br /&gt;(&lt;br /&gt; ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt;,&lt;br /&gt; Nr nvarchar(50) &lt;span style="color: #0000ff"&gt;not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;,&lt;br /&gt; OperationTime datetime &lt;span style="color: #0000ff"&gt;default&lt;/span&gt; (getdate()),&lt;br /&gt; &lt;span style="color: #0000ff"&gt;Constraint&lt;/span&gt; PK_#1_ID &lt;span style="color: #0000ff"&gt;Primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Key&lt;/span&gt; (ID)&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Alter&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1 &lt;span style="color: #0000ff"&gt;Add&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Constraint&lt;/span&gt; CK_#1_Nr &lt;span style="color: #0000ff"&gt;Check&lt;/span&gt;(Nr &lt;span style="color: #0000ff"&gt;Between&lt;/span&gt; &lt;span style="color: #006080"&gt;'10001'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;And&lt;/span&gt; &lt;span style="color: #006080"&gt;'19999'&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;br /&gt;&#xD;
&#xD;
&lt;p&gt;&amp;lt; 脚本S1.&amp;gt;中，可以看出在临时表#1的创建时，创建Constraint如&amp;#8220;Constraint PK_#1_ID Primary Key(ID)&amp;#8221;，也可以在创建临时表#1后创建Constraint，如&amp;#8220;Alter Table #1 Add Constraint CK_#1_Nr Check(Nr Between '10001' And'19999')&amp;#8221;，下面我们来看表变量的场景，在定义表变量时不能指定Constraint名，定义表变量后不能对表变量创建Constraint。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g. 在定义表变量时不能指定Constraint名&amp;lt;代码S2.&amp;gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;Use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Declare&lt;/span&gt; @1 &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt;&lt;br /&gt;(&lt;br /&gt; ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt;,&lt;br /&gt; Nr nvarchar(50) &lt;span style="color: #0000ff"&gt;not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;,&lt;br /&gt; OperationTime datetime &lt;span style="color: #0000ff"&gt;default&lt;/span&gt; (getdate()),&lt;br /&gt; &lt;span style="color: #0000ff"&gt;Constraint&lt;/span&gt; [PK_@1_ID] &lt;span style="color: #0000ff"&gt;Primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Key&lt;/span&gt; (ID)&lt;br /&gt;)&lt;br /&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&#xD;
&lt;div&gt;&#xD;
  &lt;br /&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280759555921.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280759568005.png" border="0" height="281" width="798" /&gt;&lt;/a&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在定义表变量后不能对表变量创建Constraint，&amp;lt;代码S3.&amp;gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p id="codeSnippetWrapper"&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Declare&lt;/span&gt; @1 &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt;&lt;br /&gt;(&lt;br /&gt; ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; &lt;span style="color: #0000ff"&gt;primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;key&lt;/span&gt; &lt;span style="color: #0000ff"&gt;clustered&lt;/span&gt;,&lt;br /&gt; Nr nvarchar(50),&lt;br /&gt; OperationTime datetime &lt;span style="color: #0000ff"&gt;default&lt;/span&gt; (getdate())&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Alter&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; @1 &lt;span style="color: #0000ff"&gt;Add&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Constraint&lt;/span&gt; [CK_@1_Nr] &lt;span style="color: #0000ff"&gt;Check&lt;/span&gt;(Nr &lt;span style="color: #0000ff"&gt;Between&lt;/span&gt; &lt;span style="color: #006080"&gt;'10001'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;And&lt;/span&gt; &lt;span style="color: #006080"&gt;'19999'&lt;/span&gt;)&lt;br /&gt;&lt;/pre&gt;&#xD;
&#xD;
&lt;br /&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280759576435.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280759586567.png" border="0" height="328" width="798" /&gt;&lt;/a&gt; &#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在&amp;lt;代码S2.&amp;gt;和&amp;lt;代码S3.&amp;gt;中可以发现，在解析T-SQL语法过程就发生错误，也就是SQL Server不支持定义表变量时对Constraint命名，也不支持定义表变量后，对其建Constraint。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;font color="#ff0000"&gt;&lt;em&gt;这里慎重提示下，在&amp;lt;代码S1.&amp;gt;给临时表建Constraint的时候，特别是在并发场景中，不要指定具体的Constraint名称，不然会发生对象已存在的错误提示。&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g. 在MSSMS中我们先执行之前&amp;lt;代码S1.&amp;gt;的创建临时表#1，不关闭当前会话的情况下，另建一个查询，执行与&amp;lt;代码S1.&amp;gt;相同的代码，如图&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/20111028080001518.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800039669.png" border="0" height="285" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;左边的查询窗口，是执行原先的&amp;lt;代码S1.&amp;gt;，右边的查询窗口，是后执行相同的&amp;lt;代码S1.&amp;gt;。在这里，我们注意红色圈圈部分，发现在创建临时表#1的过程，明确给了一个主键名称&amp;#8220;PK_#1_ID&amp;#8221;，当右边再创建相同临时表#1的时候就发生了对象重复错误问题。我们也可以通过SQL Server提供的系统视图sys.objects查询约束&amp;#8220;PK_#1_ID&amp;#8221;的信息，&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; tempdb&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;from&lt;/span&gt; sys.objects &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; name=&lt;span style="color: #006080"&gt;'PK_#1_ID'&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800062998.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800088736.png" border="0" height="269" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在系统视图sys.objects，发现&amp;#8220;PK_#1_ID&amp;#8221;名称后面不加如何的随机数值表述不同会话有不同的对象。根据SQL Server对sys.objects的描述规则，sys.objects中的Name列数据是唯一的。当另一个会话创建相同的对象时就会发生对象重复的错误。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在Constraint中，Foreign Key是不能应用与表变量，对于临时表，创建Foreign Key是没有意义的。也就是说临时表不受Foreign Key约束。下面我们通过例子来说明临时表的情况，&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&amp;lt; 脚本S4.&amp;gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; object_id(&lt;span style="color: #006080"&gt;'Tempdb..#1'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;Is&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Drop&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1                &lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; object_id(&lt;span style="color: #006080"&gt;'Tempdb..#2'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;Is&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Drop&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #2                &lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Create&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1&lt;br /&gt;(&lt;br /&gt;&lt;br /&gt;    ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt;,&lt;br /&gt;    Nr nvarchar(50) &lt;span style="color: #0000ff"&gt;not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;,&lt;br /&gt;    OperationTime datetime &lt;span style="color: #0000ff"&gt;default&lt;/span&gt;(getdate()),&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Constraint&lt;/span&gt; PK_#1_ID &lt;span style="color: #0000ff"&gt;Primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Key&lt;/span&gt;(ID)&lt;br /&gt;)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Alter&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1 &lt;span style="color: #0000ff"&gt;Add&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Constraint&lt;/span&gt; CK_#1_Nr &lt;span style="color: #0000ff"&gt;Check&lt;/span&gt;(Nr &lt;span style="color: #0000ff"&gt;Between&lt;/span&gt; &lt;span style="color: #006080"&gt;'10001'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;And&lt;/span&gt; &lt;span style="color: #006080"&gt;'19999'&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Create&lt;/span&gt; &lt;span style="color: #0000ff"&gt;table&lt;/span&gt; #2&lt;br /&gt;(&lt;br /&gt;    ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Key&lt;/span&gt;,&lt;br /&gt;    ForeignID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt; ,&lt;span style="color: #0000ff"&gt;foreign&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Key&lt;/span&gt;(ForeignID) &lt;span style="color: #0000ff"&gt;References&lt;/span&gt; #1(ID)&lt;br /&gt;)&lt;br /&gt;Go&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800094691.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800116002.png" border="0" height="375" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;可以看出对于临时表不强制Foreign Key约束,我们也可以通过SQL Server系统视图sys.foreign_keys查询&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;from&lt;/span&gt; sys.tables &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; name &lt;span style="color: #0000ff"&gt;like&lt;/span&gt; &lt;span style="color: #006080"&gt;'#[1-2]%'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; sys.foreign_keys&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;div&gt;&#xD;
  &lt;br /&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800148317.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800166596.png" border="0" height="361" width="798" /&gt;&lt;/a&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;右边的查询，只看到在sys.tables表哦中存在刚才创建的临时表#1和#2，在sys.foreign_keys看不到有关Foreign Key约束信息。这也验证了左边SQL Server提示的，在临时表中无法强制使用Foreign Key约束。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;索引(Index)&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;从索引方面看临时表和表变量，与从Constraint上分析有些类似，在临时表中，它与真实表一样可以创建索引。在表变量定义过程中，也可以创建一些类似唯一和聚集索引。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&amp;lt; 脚本S5.&amp;gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; tempdb&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;declare&lt;/span&gt; @1 &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt;(      &lt;br /&gt;&lt;br /&gt;                ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt;  &lt;span style="color: #0000ff"&gt;primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;key&lt;/span&gt; &lt;span style="color: #0000ff"&gt;clustered&lt;/span&gt;,&lt;br /&gt;&lt;br /&gt;                Nr nvarchar(50) &lt;span style="color: #0000ff"&gt;unique&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Nonclustered&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(1,&lt;span style="color: #006080"&gt;'10001'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(2,&lt;span style="color: #006080"&gt;'10002'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(8,&lt;span style="color: #006080"&gt;'10003'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(3,&lt;span style="color: #006080"&gt;'10004'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(7,&lt;span style="color: #006080"&gt;'10005'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;top&lt;/span&gt; 2 *&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; sys.indexes &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; a&lt;br /&gt;&lt;br /&gt;                                &lt;span style="color: #0000ff"&gt;Inner&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Join&lt;/span&gt; sys.tables &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; b &lt;span style="color: #0000ff"&gt;On&lt;/span&gt; b.object_id=a.object_id&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;Order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;by&lt;/span&gt; b.create_date &lt;span style="color: #0000ff"&gt;Desc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; Nr &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; @1 &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; Nr=&lt;span style="color: #006080"&gt;'10005'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800181712.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800207549.png" border="0" height="530" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800217648.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800236243.png" border="0" height="351" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;上面截的是两张图，第一张图描述在表变量使聚集Primary Key，创建非聚集的Unique约束，第二张图描述查询语句&amp;#8221;Select Nr From @1 Where Nr='10005'&amp;#8221; 应用到在表变量创建的唯一索引&amp;#8220;UQ_#&amp;#8230;&amp;#8230;&amp;#8221;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;是于临时表索引的例子，我们拿一个例子说明，与前边说的Constraint例子有点相似，这里我们对临时表创建索引，并给索引一个具体名称，测试是否会重复。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.在MSSMS新增两个查询，编写下面的SQL语句：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;lt; 脚本S6.&amp;gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;Use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; object_id(&lt;span style="color: #006080"&gt;'#1'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; &lt;span style="color: #0000ff"&gt;not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;    &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Drop&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1 &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #0000ff"&gt;Create&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1&lt;br /&gt;(&lt;br /&gt; ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; &lt;span style="color: #0000ff"&gt;primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;key&lt;/span&gt;,&lt;br /&gt; Nr nvarchar(50) &lt;span style="color: #0000ff"&gt;not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;,&lt;br /&gt; OperationTime datetime &lt;span style="color: #0000ff"&gt;default&lt;/span&gt; (getdate()),&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;create&lt;/span&gt; &lt;span style="color: #0000ff"&gt;nonclustered&lt;/span&gt; &lt;span style="color: #0000ff"&gt;index&lt;/span&gt; IX_#1_Nr &lt;span style="color: #0000ff"&gt;on&lt;/span&gt; #1(Nr &lt;span style="color: #0000ff"&gt;Asc&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; b.name &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; TableName,&lt;br /&gt;       a.* &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;from&lt;/span&gt; sys.indexes &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; a&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;Inner&lt;/span&gt; &lt;span style="color: #0000ff"&gt;join&lt;/span&gt; sys.tables &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; b &lt;span style="color: #0000ff"&gt;On&lt;/span&gt; b.object_id=a.object_id&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; b.name &lt;span style="color: #0000ff"&gt;like&lt;/span&gt; &lt;span style="color: #006080"&gt;'#1[_]%'&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;by&lt;/span&gt; b.create_date Asc&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800281755.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800325706.png" border="0" height="394" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;从返回的结果，我们看到在系统视图表Sys.Indexes中，创建有两个相同的索引&amp;#8221;IX_#1_Nr&amp;#8221;，但注意下object_id数据不同。在SQL Server中是允许不同的表索引名称可以相同的。在并发的环境下，按原理是可以对临时表创建的索引给明确名称的。除非并发的情况会发生重复的表名或重复的Constraint，或其它系统资源不足的问题，才会导致出错。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;I/0开销&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;临时表与表变量，在I/O开销的描述，我们直接通过一个特殊的例子去描述它们，在MSSMS上新增两个查询，分别输入临时表和表变量的测试代码：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&amp;lt; 脚本S7.&amp;gt;临时表：&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;Use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; object_id(&lt;span style="color: #006080"&gt;'#1'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; &lt;span style="color: #0000ff"&gt;not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;    &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Drop&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1 &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #0000ff"&gt;Create&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1&lt;br /&gt;(&lt;br /&gt; ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; &lt;span style="color: #0000ff"&gt;primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;key&lt;/span&gt;,&lt;br /&gt; Nr nvarchar(50) &lt;span style="color: #0000ff"&gt;not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;,&lt;br /&gt; OperationTime datetime &lt;span style="color: #0000ff"&gt;default&lt;/span&gt; (getdate())&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; #1(ID,Nr,OperationTime)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;top&lt;/span&gt; 50000 row_number()&lt;span style="color: #0000ff"&gt;over&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;by&lt;/span&gt; a.object_id),&lt;span style="color: #0000ff"&gt;left&lt;/span&gt;(a.name+b.name,50) ,a.create_date&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;from&lt;/span&gt; master.sys.all_objects &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; a ,sys.all_columns &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; b&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; type=&lt;span style="color: #006080"&gt;'S'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; Nr,&lt;span style="color: #0000ff"&gt;count&lt;/span&gt;(Nr) &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; Sum_ &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; #1 &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; Nr &lt;span style="color: #0000ff"&gt;like&lt;/span&gt; &lt;span style="color: #006080"&gt;'sysrscolss%'&lt;/span&gt;    &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Group&lt;/span&gt; &lt;span style="color: #0000ff"&gt;by&lt;/span&gt; Nr&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&amp;lt; 脚本S8.&amp;gt;表变量：&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;Use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Declare&lt;/span&gt; @1 &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt;&lt;br /&gt;(&lt;br /&gt; ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; &lt;span style="color: #0000ff"&gt;primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;key&lt;/span&gt;,&lt;br /&gt; Nr nvarchar(50) &lt;span style="color: #0000ff"&gt;not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;,&lt;br /&gt; OperationTime datetime &lt;span style="color: #0000ff"&gt;default&lt;/span&gt; (getdate())&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1(ID,Nr,OperationTime)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;top&lt;/span&gt; 50000 row_number()&lt;span style="color: #0000ff"&gt;over&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;by&lt;/span&gt; a.object_id),&lt;span style="color: #0000ff"&gt;left&lt;/span&gt;(a.name+b.name,50) ,a.create_date&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;from&lt;/span&gt; master.sys.all_objects &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; a ,sys.all_columns &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; b&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; type=&lt;span style="color: #006080"&gt;'S'&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; Nr,&lt;span style="color: #0000ff"&gt;count&lt;/span&gt;(Nr) &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; Sum_ &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; @1 &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; Nr &lt;span style="color: #0000ff"&gt;like&lt;/span&gt; &lt;span style="color: #006080"&gt;'sysrscolss%'&lt;/span&gt;    &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Group&lt;/span&gt; &lt;span style="color: #0000ff"&gt;by&lt;/span&gt; Nr&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/20111028080038793.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110280800428747.png" border="0" height="513" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;lt; 脚本S7.&amp;gt;和&amp;lt; 脚本S8.&amp;gt;，主要是看最后的查询语句I/O的开销，两者有何不同。通过上面的运行结果图形描述，可以看出查询开始，不管是临时表还是表变量，都使用到了聚集索引扫描(Clustered Index Scan)，两者虽然返回的数据一致，但I/O的开销不同。临时表的I/O开销是0.324606,而表变量只有0.003125 相差非常大。在临时表的执行计划图形中，我们发现一行&amp;#8220;缺少索引（影响 71.9586):CREATE &amp;#8230;&amp;#8230;）&amp;#8221;提示信息。我们对临时表#1，在字段&amp;#8220;Nr&amp;#8221;上创建一个非聚集索引，再看执行执行结果：&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;create&lt;/span&gt; &lt;span style="color: #0000ff"&gt;nonclustered&lt;/span&gt; &lt;span style="color: #0000ff"&gt;index&lt;/span&gt; IX_#1_Nr &lt;span style="color: #0000ff"&gt;On&lt;/span&gt; #1(Nr)&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/20111028080050686.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/20111028080055624.png" border="0" height="527" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;我们在临时表#1上创建完索引&amp;#8220;IX_#1_Nr&amp;#8221;，运行看上面的图形显示，就感觉非常的有意思了。在临时表#1查询时用了索引搜索（Index Seek），而且I/O开销减少到了0.0053742。虽然开始查询的时候I/O开销还是比表变量开始查询的时候大一些，但执行步骤中比变变量少了一个&amp;#8220;排序(Sort)&amp;#8221;开销，后最后的看回Select结果，估计子树的成本比使用表变量的大大减少。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;这里的例子只是描述一个特殊的情况，在真实的环境中，要根据实际的数据量来判断是否使用临时表或表变量。倘若在存储过程中，当数据量非常少如只有不到50行记录，数据占的页面也不会超过1个页面，那么使用表变量是一个很好的解决方案。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;作用域(scope)&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;表变量像局部变量(local variable)一样，有着很窄的作用域，只能应用于定义的函数、存储过程或批处理内。如，一个会话里面有几个批处理，那么表变量只能作用在它定义所在的批处理范围内。其他的批处理无法再调用它。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.在MSSMS新增一个查询，编写&amp;lt; 脚本S9.&amp;gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; Nocount &lt;span style="color: #0000ff"&gt;on&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;declare&lt;/span&gt; @1 &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt;(      &lt;br /&gt;                ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt;  &lt;span style="color: #0000ff"&gt;primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;key&lt;/span&gt; &lt;span style="color: #0000ff"&gt;clustered&lt;/span&gt;,&lt;br /&gt;                Nr nvarchar(50) &lt;span style="color: #0000ff"&gt;unique&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Nonclustered&lt;/span&gt;&lt;br /&gt;)&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(1,&lt;span style="color: #006080"&gt;'10001'&lt;/span&gt;)&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(2,&lt;span style="color: #006080"&gt;'10002'&lt;/span&gt;)&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(8,&lt;span style="color: #006080"&gt;'10003'&lt;/span&gt;)&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(3,&lt;span style="color: #006080"&gt;'10004'&lt;/span&gt;)&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(7,&lt;span style="color: #006080"&gt;'10005'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; @1&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt; --批处理结束点&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; @1&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111020056462413.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111020056488834.png" border="0" height="384" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;lt; 脚本S9.&amp;gt;所在的查询相当于一个会话，&amp;#8221;Go&amp;#8221;描述的一个批处理的结束点。在&amp;#8221;Go&amp;#8221;之前定义的表变量，在&amp;#8221;Go&amp;#8221;之后调用是发生&amp;#8220;必须声明变量&lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#37;&amp;#69;&amp;#50;&amp;#37;&amp;#56;&amp;#48;&amp;#37;&amp;#57;&amp;#68;&amp;#64;&amp;#49;"&gt;@1&lt;/a&gt;&amp;#8221;的错误提示。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;临时表与表变量不同，临时表的作用域是当前会话都有效，一直到会话结束或者临时表被Drop的时候。也就是说可以跨当前会话的几个批处理范围。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&amp;lt; 脚本S10.&amp;gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;Use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; object_id(&lt;span style="color: #006080"&gt;'Tempdb..#1'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;Is&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Null&lt;/span&gt; &lt;br /&gt;   &lt;span style="color: #0000ff"&gt;Drop&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1                &lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Create&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1&lt;br /&gt;(&lt;br /&gt; ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt;,&lt;br /&gt; Nr nvarchar(50) &lt;span style="color: #0000ff"&gt;not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;,&lt;br /&gt; OperationTime datetime &lt;span style="color: #0000ff"&gt;default&lt;/span&gt; (getdate()),&lt;br /&gt; &lt;span style="color: #0000ff"&gt;Constraint&lt;/span&gt; PK_#1_ID &lt;span style="color: #0000ff"&gt;Primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Key&lt;/span&gt; (ID)&lt;br /&gt;)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;from&lt;/span&gt; #1&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt; --批处理结束点&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;from&lt;/span&gt; #1&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111020056497132.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111020056506967.png" border="0" height="414" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;lt; 脚本S10.&amp;gt;中可以看出在&amp;#8221;GO&amp;#8221;前后都可以查询到临时表#1。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在描述临时表与表变量的作用域时，&lt;font color="#ff0000"&gt;&lt;em&gt;有个地方要注意的是，当 sp_executesql 或 Execute 语句执行字符串时，字符串将作为它的自包含批处理执行. 如果表变量在sp_executesql 或 Execute 语句之前定义，在sp_executesql 或 Execute 语句的字符串中无法调用外部定义的表变量。&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&amp;lt; 脚本S11.&amp;gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; nocount &lt;span style="color: #0000ff"&gt;on&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;declare&lt;/span&gt; @1 &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt;(      &lt;br /&gt;                ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt;  &lt;span style="color: #0000ff"&gt;primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;key&lt;/span&gt; &lt;span style="color: #0000ff"&gt;clustered&lt;/span&gt;,&lt;br /&gt;                Nr nvarchar(50) &lt;span style="color: #0000ff"&gt;unique&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Nonclustered&lt;/span&gt;&lt;br /&gt;)&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(1,&lt;span style="color: #006080"&gt;'10001'&lt;/span&gt;)&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(2,&lt;span style="color: #006080"&gt;'10002'&lt;/span&gt;)&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(8,&lt;span style="color: #006080"&gt;'10003'&lt;/span&gt;)&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(3,&lt;span style="color: #006080"&gt;'10004'&lt;/span&gt;)&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1 (id,Nr) &lt;span style="color: #0000ff"&gt;values&lt;/span&gt;(7,&lt;span style="color: #006080"&gt;'10005'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; @1&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Execute&lt;/span&gt;(N&lt;span style="color: #006080"&gt;'Select * From @1'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111020056514392.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111020056533638.png" border="0" height="378" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;lt; 脚本S11.&amp;gt;中，当执行到&amp;#8221;Execute(N'Select * From @1')&amp;#8221;时候，同样发生与&amp;lt; 脚本S9.&amp;gt;一样的错误提示&amp;#8220;必须声明变量@1&amp;#8221;.&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;临时表是可以在sp_executesql 或 Execute 语句执行字符串中被调用。这里不再举例子，如果你有所模糊可以参考&amp;lt; 脚本S11.&amp;gt;把表变量转成临时表测试下就能加深理解与记忆。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;存儲位置&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;说到临时表和表变量的存储位置，我们可以看到有很多版本的说法，特别是表变量。有的说表变量数据存储在内存中，有的说存储在数据库tempdb中，有的说有部分存储在内存，部分存储在数据库tempdb中。根据我查到的官方资料，说的是在SQL Server 2000下:&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;#8220;&lt;em&gt;A table variable is not a memory-only structure. Because a table variable might hold more data than can fit in memory, it has to have a place on disk to store data. Table variables are created in the tempdb database similar to temporary tables. If memory is available, both table variables and temporary tables are created and processed while in memory (data cache).&lt;/em&gt; &amp;#8221;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在SQL Server 2005\SQL2008的版本，表变量存储与临时表有相似，都会在数据库tempdb创建，使用到tempdb存储空间。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&amp;lt; 脚本S12.&amp;gt;临时表&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; nocount &lt;span style="color: #0000ff"&gt;on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sp_spaceused &lt;span style="color: #008000"&gt;/*插入数据之前*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; object_id(&lt;span style="color: #006080"&gt;'#1'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;Is&lt;/span&gt; &lt;span style="color: #0000ff"&gt;not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Drop&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1 &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #0000ff"&gt;create&lt;/span&gt; &lt;span style="color: #0000ff"&gt;table&lt;/span&gt; #1(ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; ,Nr nvarchar(50))&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; #1  (ID,Nr)&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;top&lt;/span&gt;(1) row_number() &lt;span style="color: #0000ff"&gt;Over&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;By&lt;/span&gt; a.object_id),&lt;span style="color: #0000ff"&gt;left&lt;/span&gt;(a.name+b.name,50)&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; sys.all_objects &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; a,&lt;br /&gt;            sys.all_columns &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; b    &lt;br /&gt;                                &lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;top&lt;/span&gt;(1) name,object_id,type,create_date &lt;span style="color: #0000ff"&gt;from&lt;/span&gt; sys.tables &lt;span style="color: #0000ff"&gt;Order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;by&lt;/span&gt; create_date &lt;span style="color: #0000ff"&gt;Desc&lt;/span&gt;            &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sp_spaceused &lt;span style="color: #008000"&gt;/*插入数据之后*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&#xD;
&#xD;
  &lt;br /&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/20111102005654682.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111020056586731.png" border="0" height="619" width="798" /&gt;&lt;/a&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;在&amp;lt; 脚本S12.&amp;gt;执行后，我们可以看到在数据库tempdb中的表sys.tables创建有表#1。我们接着看空间的使用情况，插入数据之前，数据库未使用空间(unallocated space)为510.39MB,向临时表#1插入1条数据后，数据库未使用空间为501.38MB,未使用空间变小了。再来看整个数据库的数据(data)使用的空间变化,从552KB变成560KB,使用了一页的数据空间(8kb)。这说明一点，临时表，即使你只插入一条数据都会使用到数据库tempdb的空间。也许会有人问，要是我只建临时表#1,不插入数据，会如何。我们可以结果：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111020056592139.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/20111102005703106.png" border="0" height="686" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;这里你会发现前后的空间大小不变，不过，不要认为没有使用到数据库tempdb数据空间，当你多用户创建临时表结构的时候，你就会发现其实都会应用到数据库tempdb的空间。我这里创建了10个#1后的效果如：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111020057039168.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/20111102005705955.png" border="0" height="292" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;相同的原理，我们使用类似的方法测试表变量的情况，发现结论是与临时表的一致的，会使用到数据库tempdb的空间.&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&amp;lt; 脚本S13.&amp;gt;表变量&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; nocount &lt;span style="color: #0000ff"&gt;on&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sp_spaceused &lt;span style="color: #008000"&gt;/*插入数据之前*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Declare&lt;/span&gt; @1 &lt;span style="color: #0000ff"&gt;table&lt;/span&gt;(ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; ,Nr nvarchar(50))&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1  (ID,Nr)&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;top&lt;/span&gt;(1) row_number() &lt;span style="color: #0000ff"&gt;Over&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;By&lt;/span&gt; a.object_id),&lt;span style="color: #0000ff"&gt;left&lt;/span&gt;(a.name+b.name,50)&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; sys.all_objects &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; a,&lt;br /&gt;            sys.all_columns &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; b            &lt;br /&gt;            &lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;top&lt;/span&gt;(1) name,object_id,type,create_date &lt;span style="color: #0000ff"&gt;from&lt;/span&gt; sys.objects &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; type=&lt;span style="color: #006080"&gt;'U'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;by&lt;/span&gt; create_date &lt;span style="color: #0000ff"&gt;Desc&lt;/span&gt;            &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sp_spaceused &lt;span style="color: #008000"&gt;/*插入数据之后*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sp_spaceused &lt;span style="color: #008000"&gt;/*Go之后*/&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/20111102005710983.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111020057144490.png" border="0" height="643" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;lt; 脚本S13.&amp;gt;中，我多写了一个&amp;#8221;GO&amp;#8221;之后检查空间大小的存储过程sp_spaceused。这样为了了更能体现表变量使用空间变化情况。从插入数据前和插入数据后的结果图来看，表变量不仅在数据库tempdb创建了表结构#267ABA7A类似的这样表，表变量也应用到了数据库tempdb的空间。不过这里注意一点就是在&amp;#8221;Go&amp;#8221;之后，我们发现表变量@1,会马上释放所使用的数据空间。为了更能体现使用空间情况。我们可以向表变量@1插入大量数据看空间变化情况（测试插入1000万的数据行）。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&amp;lt; 脚本S14.&amp;gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; nocount &lt;span style="color: #0000ff"&gt;on&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sp_spaceused &lt;span style="color: #008000"&gt;/*插入数据之前*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Declare&lt;/span&gt; @1 &lt;span style="color: #0000ff"&gt;table&lt;/span&gt;(ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; ,Nr nvarchar(50))&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1  (ID,Nr)&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;top&lt;/span&gt;(10000000) row_number() &lt;span style="color: #0000ff"&gt;Over&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;By&lt;/span&gt; a.object_id),&lt;span style="color: #0000ff"&gt;left&lt;/span&gt;(a.name+b.name,50)&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; sys.all_objects &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; a,&lt;br /&gt;            sys.all_columns &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; b            &lt;br /&gt;            &lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;top&lt;/span&gt;(1) name,object_id,type,create_date &lt;span style="color: #0000ff"&gt;from&lt;/span&gt; sys.objects &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; type=&lt;span style="color: #006080"&gt;'U'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;by&lt;/span&gt; create_date &lt;span style="color: #0000ff"&gt;Desc&lt;/span&gt;            &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sp_spaceused &lt;span style="color: #008000"&gt;/*插入数据之后*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sp_spaceused &lt;span style="color: #008000"&gt;/*Go之后*/&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111020057195914.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111020057239007.png" border="0" height="649" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;这里我们可清晰的看到数据库tempdb的大小(database_size)变化情况，从插入数据前的552.75MB变成插入数据之后的892.75MB。非常有意思的是我们在&amp;#8221;Go之后&amp;#8221;发现数据库大小保存在892.75MB,但数据使用空间(data)从560KB&amp;#8212;&amp;gt;851464KB&amp;#8212;&amp;gt;536KB ，说明SQL Server自动释放为使用的数据空间，但不会马上自动释放数据库分配的磁盘空间。我们在实际的环境中，发现临时数据库tempdb使用的磁盘空间越来越大，这是其中的原因之一。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;其他&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;临时表与表变量，还有其他的特征，如临时表受事务回滚，而表变量不受事务回滚影响。对应事务方面，更为正确的说法是表变量的事务只在表变量更新期间存在。因此减少了表变量对锁定和记录资源的需求。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&amp;lt; 脚本S15.&amp;gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; tempdb&lt;br /&gt;&lt;span style="color: #0000ff"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; nocount &lt;span style="color: #0000ff"&gt;on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; object_id(&lt;span style="color: #006080"&gt;'#1'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;Is&lt;/span&gt; &lt;span style="color: #0000ff"&gt;not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Drop&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; #1     &lt;br /&gt;&lt;span style="color: #0000ff"&gt;create&lt;/span&gt; &lt;span style="color: #0000ff"&gt;table&lt;/span&gt; #1(ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; ,Nr nvarchar(50))&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Declare&lt;/span&gt; @1 &lt;span style="color: #0000ff"&gt;table&lt;/span&gt;(ID &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; ,Nr nvarchar(50))&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt; &lt;span style="color: #0000ff"&gt;tran&lt;/span&gt; &lt;span style="color: #008000"&gt;/*开始事务*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; #1  (ID,Nr)&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;top&lt;/span&gt;(1) row_number() &lt;span style="color: #0000ff"&gt;Over&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;By&lt;/span&gt; a.object_id),&lt;span style="color: #0000ff"&gt;left&lt;/span&gt;(a.name+b.name,50)&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; sys.all_objects &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; a,&lt;br /&gt;            sys.all_columns &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; b    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; @1  (ID,Nr)&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;top&lt;/span&gt;(1) row_number() &lt;span style="color: #0000ff"&gt;Over&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;By&lt;/span&gt; a.object_id),&lt;span style="color: #0000ff"&gt;left&lt;/span&gt;(a.name+b.name,50)&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; sys.all_objects &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; a,&lt;br /&gt;            sys.all_columns &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; b    &lt;br /&gt;            &lt;br /&gt;&lt;span style="color: #0000ff"&gt;rollback&lt;/span&gt; &lt;span style="color: #0000ff"&gt;tran&lt;/span&gt; &lt;span style="color: #008000"&gt;/*回滚事务*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;from&lt;/span&gt; #1&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;from&lt;/span&gt; @1&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201111/20111102005724544.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201111/201111020057271675.png" border="0" height="560" width="798" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;这里发现&amp;#8221;Rollback Tran&amp;#8221;之后，临时表#1没有数据插入，而表变量@1还有一条数据存在。说明表变量不受&amp;#8221;Rollback Tran&amp;#8221;所影响。它的行为有类似于局部变量一样。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;另外SQL Server对表变量不保留任何的统计信息，因为如此，我们在数据量大的时候使用表变量，发现比临时表要慢许多。前面在I/O开销那里我们取有一个特殊的例子，这里不再举例。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;小结&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;无论如何，临时表和表变量有各自的特征，有自己优点和缺点。在不同的场景选择它们灵活应用。本文章是我对临时表和表变量的一些认识理解，可能有些地方说的不够好或者遗漏，你可以留言或Email与我联系，我会继续改进或纠正，我也不希望有些错误的见解会误导别人。正如&lt;a href="http://ask.sqlservercentral.com/users/19/phil-factor/"&gt;Phil Factor&lt;/a&gt;说的一句" I'd hate to think of anyone being misled by my advice!".&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;附参考：&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/305977/en-us"&gt;http://support.microsoft.com/kb/305977/en-us&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/27894/whats-the-difference-between-a-temp-table-and-table-variable-in-sql-server"&gt;http://stackoverflow.com/questions/27894/whats-the-difference-between-a-temp-table-and-table-variable-in-sql-server&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa175774%28SQL.80%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa175774(SQL.80).aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc966545.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc966545.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://www.simple-talk.com/sql/t-sql-programming/temporary-tables-in-sql-server/"&gt;http://www.simple-talk.com/sql/t-sql-programming/temporary-tables-in-sql-server/&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a title="http://support.microsoft.com/kb/942661/en-us" href="http://support.microsoft.com/kb/942661/en-us"&gt;http://support.microsoft.com/kb/942661/en-us&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wghao/aggbug/2227219.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wghao/archive/2011/11/02/2227219.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wghao/archive/2011/10/25/2224626.html</id><title type="text">PowerShell应用之-批量执行SQL脚本</title><summary type="text">这一篇，我们来实现PowerShell 2.0在SQL Server中的一个应用,是批量执行SQL脚本。在接下来的内容，将使用到下面的命令或类库。 Sort-Object out-null Write-Error $_ System.IO.DirectoryInfo Microsoft.SqlServer.Management.Common.ServerConnection 创建测试环境 为了更能说明PowerShell脚本的应用，我们这里创建个测试环境，模拟一个要升级的SQL脚本文件；首先，要创建两个数据库『TestingDB...</summary><published>2011-10-25T15:57:00Z</published><updated>2011-10-25T15:57:00Z</updated><author><name>OK_008</name><uri>http://www.cnblogs.com/wghao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wghao/archive/2011/10/25/2224626.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wghao/archive/2011/10/25/2224626.html"/><content type="html">&lt;p&gt;&lt;font size="5"&gt;这&lt;/font&gt;一篇，我们来实现PowerShell 2.0在SQL Server中的一个应用,是批量执行SQL脚本。在接下来的内容，将使用到下面的命令或类库。&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Sort-Object&lt;/li&gt;    &lt;li&gt;out-null&lt;/li&gt;    &lt;li&gt;Write-Error &lt;/li&gt;    &lt;li&gt;$_&lt;/li&gt;    &lt;li&gt;System.IO.DirectoryInfo&lt;/li&gt;    &lt;li&gt;Microsoft.SqlServer.Management.Common.ServerConnection&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="5"&gt;&lt;strong&gt;&lt;font size="4"&gt;创建测试环境&lt;/font&gt;        &lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt;为了更能说明PowerShell脚本的应用，我们这里创建个测试环境，模拟一个要升级的SQL脚本文件；首先，要创建两个数据库『TestingDB01』和『TestingDB02』：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('41c6116e-a516-4730-ba85-5085186e134e')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_41c6116e-a516-4730-ba85-5085186e134e" onclick="cnblogs_code_hide('41c6116e-a516-4730-ba85-5085186e134e',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_41c6116e-a516-4730-ba85-5085186e134e" &gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;use&lt;/span&gt;&amp;nbsp;master&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;db_id&lt;/span&gt;(&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;TestingDB01&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Is&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Drop&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Database&lt;/span&gt;&amp;nbsp;TestingDB01&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Create&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Database&lt;/span&gt;&amp;nbsp;TestingDB01&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;db_id&lt;/span&gt;(&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;TestingDB02&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Is&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Drop&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Database&lt;/span&gt;&amp;nbsp;TestingDB02&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Create&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Database&lt;/span&gt;&amp;nbsp;TestingDB02&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;在Microsoft SQL Server Management Studio(MSSMS)中执行上面的创建数据库SQL语句。接下来我们创建三个SQL脚本文件：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;1. 01_ TestingDB_CreateTB&amp;amp;InitializeData.sql &lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;2. 02_ TestingDB_Procedures_0001.sql&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;3. 03_ TestingDB_Procedures_0002.sql&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;第1个脚本，应用于创建数据表和初始化数据使用，第2、3个脚本，只要是存储过程的脚本文件，其中有1个存储过程包含有动态的SQL语句，每一个脚本都包含有对数据库『TestingDB01』和『TestingDB02』的脚本。这些脚本制作是模拟真实环境中的升级脚本，列举常见的脚本内容样本。下面是描述这三个SQL脚本文件的具体内容。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;[01_ TestingDB_CreateTB&amp;amp;InitializeData.sql]文件內容：&lt;/p&gt;&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('08ef9fe0-26f0-438b-ad57-5ef71f665e05')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_63824c57-042b-424a-bfac-ffd91236c5a3" onclick="cnblogs_code_hide('63824c57-042b-424a-bfac-ffd91236c5a3',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_63824c57-042b-424a-bfac-ffd91236c5a3" &gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;use&lt;/span&gt;&amp;nbsp;TestingDB01&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;object_id&lt;/span&gt;(&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;rTestingTB1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Is&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Drop&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;proc&lt;/span&gt;&amp;nbsp;rTestingTB1&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Create&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Proc&lt;/span&gt;&amp;nbsp;rTestingTB1&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;ID,Data&amp;nbsp;&lt;span style="color: #0000FF;"&gt;From&lt;/span&gt;&amp;nbsp;TestingTB1&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;use&lt;/span&gt;&amp;nbsp;TestingDB02&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;object_id&lt;/span&gt;(&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;rTestingTB2&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Is&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Drop&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;proc&lt;/span&gt;&amp;nbsp;rTestingTB2&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Create&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Proc&lt;/span&gt;&amp;nbsp;rTestingTB2&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;@Columns&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color: #FF00FF;"&gt;max&lt;/span&gt;)&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;@Where&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color: #FF00FF;"&gt;max&lt;/span&gt;)&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;br /&gt;)&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;Isnull&lt;/span&gt;(&lt;span style="color: #008000;"&gt;@Columns&lt;/span&gt;,&lt;span style="color: #FF0000;"&gt;''&lt;/span&gt;)&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;''&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Set&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;@Columns&lt;/span&gt;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID,Data&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;Isnull&lt;/span&gt;(&lt;span style="color: #008000;"&gt;@Where&lt;/span&gt;,&lt;span style="color: #FF0000;"&gt;''&lt;/span&gt;)&lt;span style="color: #808080;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;''&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Set&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;@Where&lt;/span&gt;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;Where&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #808080;"&gt;+&lt;/span&gt;&lt;span style="color: #008000;"&gt;@Where&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Set&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;@Where&lt;/span&gt;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;''&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Exec&lt;/span&gt;(N&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Select&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #808080;"&gt;+&lt;/span&gt;&lt;span style="color: #008000;"&gt;@Columns&lt;/span&gt;&lt;span style="color: #808080;"&gt;+&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;From&amp;nbsp;TestingTB1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #808080;"&gt;+&lt;/span&gt;&lt;span style="color: #008000;"&gt;@Where&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;[03_ TestingDB_Procedures_0002.sql]文件內容：&lt;/p&gt;&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('97d7955c-80da-41de-98d8-a24d7d5bd1f2')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_97d7955c-80da-41de-98d8-a24d7d5bd1f2" onclick="cnblogs_code_hide('97d7955c-80da-41de-98d8-a24d7d5bd1f2',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_97d7955c-80da-41de-98d8-a24d7d5bd1f2" &gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;use&lt;/span&gt;&amp;nbsp;TestingDB01&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;object_id&lt;/span&gt;(&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;rTestingTB&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Is&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Drop&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;proc&lt;/span&gt;&amp;nbsp;rTestingTB&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Create&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Proc&lt;/span&gt;&amp;nbsp;rTestingTB&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;ID,Data&amp;nbsp;&lt;span style="color: #0000FF;"&gt;From&lt;/span&gt;&amp;nbsp;TestingTB1&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Where&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Exists&lt;/span&gt;(&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;From&lt;/span&gt;&amp;nbsp;TestingDB02&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Where&lt;/span&gt;&amp;nbsp;id&lt;span style="color: #808080;"&gt;=&lt;/span&gt;a.id)&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
我们把上面的三个SQL脚本文件存储在本机的某一文件路径下面，如&amp;#8220;E:\ExecuteSQLScript&amp;#8221;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110252353306950.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110252353319557.png" border="0" height="155" width="571" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;这里提示下，对于这三个脚本，需根据实际场景，按执行先后顺序，对SQL脚本文件名作编号，如格式&amp;#8220;01_&amp;#8230;&amp;#8221;,&amp;#8221;02_&amp;#8230;&amp;#8221;,&amp;#8221;03_&amp;#8230;&amp;#8221;.&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;font size="5"&gt;&lt;strong&gt;&lt;font size="4"&gt;编写PowerShell脚本&lt;/font&gt;&#xD;
&#xD;
      &lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在前边我们创建好了测试环境，接下来就开始编写PowerShell来实现执行SQL脚本文件功能。编写PowerShell脚本的时候，我们会考虑这几点问题：&lt;/p&gt;&#xD;
&#xD;
&lt;ul&gt;&#xD;
  &lt;li&gt;如何连接到SQL Server实例，如何执行SQL脚本.&lt;/li&gt;&#xD;
&#xD;
  &lt;li&gt;如何读取SQL脚本文件内容，如何按SQL脚本编号读取.&lt;/li&gt;&#xD;
&#xD;
  &lt;li&gt;如何处理错误&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;如何连接到SQL Server实例，如何执行SQL脚本&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;PowerShell基于.NET Framework上构建，我们可以根据.NET Framework提供的丰富的类库实现我们需要的功能。这里我们引用到Microsoft.SqlServer.Management.Common命名空間下的ServerConnection类，它可以让我们连接到某一SQL Server实例，而且在ServerConnection类中提供有方法ExecuteNonQuery()，可执行T-SQL语句功能。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$serverInstance="WINSERVER01\SQL2008DE01" &lt;br /&gt;$userName="sa"&lt;br /&gt;$password="sql20081"&lt;br /&gt;&lt;br /&gt;[void][System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #006080"&gt;'Microsoft.SqlServer.ConnectionInfo'&lt;/span&gt;) |&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;br /&gt;$ServerConnection =&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; Microsoft.SqlServer.Management.Common.ServerConnection $serverInstance,$userName, $password&lt;br /&gt;$ServerConnection.ExecuteNonQuery(&amp;#8220;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; test &lt;span style="color: #0000ff"&gt;Update&lt;/span&gt; myTable &lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Data&lt;/span&gt;=&lt;span style="color: #006080"&gt;'test'&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; ID=3&amp;#8221;)&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110252353329623.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110252353345710.png" border="0" height="282" width="860" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;上面的例子，我们更新数据库test中的表myTable数据，从PowerShell控制台返回的信息&amp;#8221;1&amp;#8221;可以判断更新脚本已经在实例&amp;#8221;WINSERVER01\SQL2008DE01&amp;#8221;上执行。当然我们可以在MSSMS上查询验证所更新的数据。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;如何读取SQL脚本文件内容，如何按SQL脚本编号读取.&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;读SQL脚本文件，需要获得文件路径下的文件名，把脚本文件内容按文件编号读取出来，把数据转换成字符串类型String。这样我们才能调用应用到上边的ServerConnection类的ExecuteNonQuery()方法中。这里我们System.IO.DirectoryInfo类来实现。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$ScriptPath="E:\ExecuteSQLScript\"&lt;br /&gt;[System.IO.DirectoryInfo]$DirectoryInfo=&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; System.IO.DirectoryInfo $ScriptPath | Sort-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt;&lt;br /&gt;    foreach( $f &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; ($DirectoryInfo.GetFiles("*.&lt;span style="color: #0000ff"&gt;sql&lt;/span&gt;"))) &lt;br /&gt;    {&lt;br /&gt;        $f.Name&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110252353355776.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110252353371580.png" border="0" height="364" width="860" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;我们下面定义1个类型为[System.Text.StringBuilder]的变量$Sql,调用类System.Io.File中的方法OpenText()，获取上面三个SQL脚本文件的内容，&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$ScriptPath="E:\ExecuteSQLScript\"&lt;br /&gt;[System.Text.StringBuilder]$&lt;span style="color: #0000ff"&gt;Sql&lt;/span&gt;=""&lt;br /&gt;[System.IO.DirectoryInfo]$DirectoryInfo=&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; System.IO.DirectoryInfo $ScriptPath | Sort-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt;&lt;br /&gt;    foreach( $f &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; ($DirectoryInfo.GetFiles("*.&lt;span style="color: #0000ff"&gt;sql&lt;/span&gt;"))) &lt;br /&gt;    {&lt;br /&gt;        $&lt;span style="color: #0000ff"&gt;Sql&lt;/span&gt;=$&lt;span style="color: #0000ff"&gt;Sql&lt;/span&gt;.AppendLine(([System.Io.&lt;span style="color: #0000ff"&gt;File&lt;/span&gt;]::OpenText($ScriptPath+$f.Name)).ReadToEnd())&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;$&lt;span style="color: #0000ff"&gt;Sql&lt;/span&gt;.ToString()&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/20111025235338283.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110252353431717.png" border="0" height="925" width="860" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;如何处理错误&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;我们无法保证我们所写的PowerShell脚本完全能正常运行，或在运行中发生错误，我们需要作一些特殊的错误处理，如自定义错误提示等。在PowerShell脚本为我们提供类似C#或SQL Server 2005\SQL Server 2008的&amp;#8221;Try &amp;#8230;Catch&amp;#8221;用法。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;e.g.&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;Try&lt;br /&gt;{&lt;br /&gt;    $0=0&lt;br /&gt;    $&lt;span style="color: #0000ff"&gt;value&lt;/span&gt;=1/$0&lt;br /&gt;}&lt;br /&gt;Catch&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-Error $_&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110252353447323.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110252353463650.png" border="0" height="407" width="860" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;主要考虑的几个问题，我们已经一一针对它们去解决了，下面我们写成完整的PowerShell脚本，实现批量执行SQL脚本功能：&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&amp;lt;#批量执行SQL脚本文件 Andy 2011-10-25 #&amp;gt;&lt;br /&gt;&amp;lt;#===========================================#&amp;gt;&lt;br /&gt;$serverInstance="WINSERVER01\SQL2008DE01" &lt;br /&gt;$userName="sa"&lt;br /&gt;$password="sql20081"&lt;br /&gt;$ScriptPath="E:\ExecuteSQLScript\"&lt;br /&gt;$ScriptList="&lt;br /&gt;&lt;br /&gt;"&lt;br /&gt;&amp;lt;#===========================================#&amp;gt;&lt;br /&gt;$n="`n"&lt;br /&gt;$r="`r"&lt;br /&gt;&lt;span style="color: #0000ff"&gt;While&lt;/span&gt; ($ScriptList.IndexOf($n) -gt 0)&lt;br /&gt;    {$ScriptList=$ScriptList.Replace($n,";")}&lt;br /&gt;&lt;span style="color: #0000ff"&gt;While&lt;/span&gt; ($ScriptList.IndexOf($r) -gt 0)&lt;br /&gt;    {$ScriptList=$ScriptList.Replace($r,";")}    &lt;br /&gt;&lt;span style="color: #0000ff"&gt;While&lt;/span&gt; ($ScriptList.IndexOf(" ") -gt 0)    &lt;br /&gt;    {$ScriptList=$ScriptList.Replace(" ","")}&lt;br /&gt;&lt;span style="color: #0000ff"&gt;While&lt;/span&gt; ($ScriptList.IndexOf(",") -gt 0)    &lt;br /&gt;    {$ScriptList=$ScriptList.Replace(",","")}&lt;br /&gt;&lt;span style="color: #0000ff"&gt;If&lt;/span&gt; ($ScriptList.IndexOf(".&lt;span style="color: #0000ff"&gt;sql&lt;/span&gt;") &amp;#8211;le 0)&lt;br /&gt;{&lt;br /&gt;    $ScriptList=""&lt;br /&gt;    [System.IO.DirectoryInfo]$DirectoryInfo=&lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; System.IO.DirectoryInfo $ScriptPath | Sort-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt;&lt;br /&gt;    foreach( $f &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; ($DirectoryInfo.GetFiles("*.&lt;span style="color: #0000ff"&gt;sql&lt;/span&gt;"))) &lt;br /&gt;    {&lt;br /&gt;        $ScriptList=$ScriptList+";"+$f.Name&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;Try&lt;br /&gt;{&lt;br /&gt;    [void][System.Reflection.Assembly]::LoadWithPartialName(&lt;span style="color: #006080"&gt;'Microsoft.SqlServer.ConnectionInfo'&lt;/span&gt;) |&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;br /&gt;    $ServerConnection =&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; Microsoft.SqlServer.Management.Common.ServerConnection $serverInstance,$userName, $password&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;        $ServerConnection.BeginTransaction()&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "BeginTransaction ."&lt;br /&gt;        &lt;br /&gt;        [System.Text.StringBuilder]$&lt;span style="color: #0000ff"&gt;Sql&lt;/span&gt;=""&lt;br /&gt;        Foreach($&lt;span style="color: #0000ff"&gt;File&lt;/span&gt; &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; $ScriptList.Split(";"))&lt;br /&gt;        {        &lt;br /&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;($&lt;span style="color: #0000ff"&gt;File&lt;/span&gt; -ne "")&lt;br /&gt;            {&lt;br /&gt;                $&lt;span style="color: #0000ff"&gt;Sql&lt;/span&gt;=$&lt;span style="color: #0000ff"&gt;Sql&lt;/span&gt;.AppendLine(([System.Io.&lt;span style="color: #0000ff"&gt;File&lt;/span&gt;]::OpenText($ScriptPath+$&lt;span style="color: #0000ff"&gt;File&lt;/span&gt;)).ReadToEnd())&lt;br /&gt;                $ServerConnection.ExecuteNonQuery($&lt;span style="color: #0000ff"&gt;Sql&lt;/span&gt;)|&lt;span style="color: #0000ff"&gt;out&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;br /&gt;                $&lt;span style="color: #0000ff"&gt;Sql&lt;/span&gt;=""&lt;br /&gt;                &lt;br /&gt;                &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; $ScriptPath$&lt;span style="color: #0000ff"&gt;File&lt;/span&gt;  " ...OK!"&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        $ServerConnection.CommitTransaction()&lt;br /&gt;        &lt;br /&gt;        &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "CommitTransaction ."      &lt;br /&gt;    }&lt;br /&gt;    Catch&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; ($ServerConnection.TransactionDepth -gt 0)&lt;br /&gt;            {&lt;br /&gt;                $ServerConnection.RollBackTransaction()&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "RollBackTransaction ."&lt;br /&gt;            }            &lt;br /&gt;         &lt;br /&gt;        &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-Error $_     &lt;br /&gt;    }    &lt;br /&gt;}&lt;br /&gt;Catch&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Write&lt;/span&gt;-Error $_&lt;br /&gt;   &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;运行脚本结果如图：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110252353474098.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110252353537200.png" border="0" height="639" width="860" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;提示：&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;以上脚本测试，使用的SQL Server &amp;amp; Windows环境是：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;Microsoft SQL Server 2008 (SP2) - 10.0.4000.0 (Intel X86) &#xD;
  &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sep 16 2010 20:09:22 &#xD;
&#xD;
  &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Copyright (c) 1988-2008 Microsoft Corporation&#xD;
&#xD;
  &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Enterprise Edition on Windows NT 6.0 &amp;lt;X86&amp;gt; (Build 6001: Service Pack 1)&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;另外在PowerShell 2.0+SQL Server 2005(sp4) + Windows 20003(Windows XP)上测试通过。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wghao/aggbug/2224626.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wghao/archive/2011/10/25/2224626.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wghao/archive/2011/10/21/2219789.html</id><title type="text">PowerShell应用之-Get-WmiObject -Class Win32_Service</title><summary type="text">开始 引用Windows PowerShell官方的说明，Windows PowerShell 是专为系统管理员设计的新 Windows 命令行 shell。Windows PowerShell 包括交互式提示和脚本环境，两者既可以独立使用也可以组合使用。在我学习PowerShell过程中，发觉学习PowerShell的门槛不高，学起来不费劲，要是有DOTNET或其它编程语言基础，那么感觉就更容易了。因为，PowerShell最基本的功能命令就是cmdlet(command-let),cmdlet标准格式是“动词-名词”，如.Get-Help ,Get-Host,New-Serv...</summary><published>2011-10-20T23:19:00Z</published><updated>2011-10-20T23:19:00Z</updated><author><name>OK_008</name><uri>http://www.cnblogs.com/wghao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wghao/archive/2011/10/21/2219789.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wghao/archive/2011/10/21/2219789.html"/><content type="html">&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;开始&lt;/strong&gt;&lt;/font&gt; &lt;/p&gt;  &lt;hr /&gt;    &lt;p&gt;&lt;strong&gt;引用&lt;/strong&gt;Windows PowerShell官方的说明，&lt;em&gt;Windows PowerShell 是专为系统管理员设计的新 Windows 命令行 shell。Windows PowerShell 包括交互式提示和脚本环境，两者既可以独立使用也可以组合使用。&lt;/em&gt;在我学习PowerShell过程中，发觉学习PowerShell的门槛不高，学起来不费劲，要是有DOTNET或其它编程语言基础，那么感觉就更容易了。因为，PowerShell最基本的功能命令就是cmdlet(command-let),cmdlet标准格式是&amp;#8220;动词-名词&amp;#8221;，如.Get-Help ,Get-Host,New-Service等。这让人感觉很顺口，不会花太多的时间去记住复杂的命令。下面，从一个实际的例子来描述PowerShell的应用。下面的例子，你将了解到命令：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Get-WmiObject&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Format-Table&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Where-Objec&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;前不久，有寫過一篇《&lt;strong&gt;&lt;a href="http://www.cnblogs.com/wghao/archive/2011/09/23/2187821.html" target="_blank"&gt;通过批处理脚本启动/停止SQL Server服务&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;》，今天寫出一篇通過PowerShell腳本實現相同的功能，而且使用比批處理腳本更為方便。通過PowerShell腳本實現，最大的優點是，針對控制網絡電腦上的SQL Server服務，沒必要通過遠端桌面連線工具，就可以實現。&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;先製作一個CSV格式文件『SQLSeverList.csv』，描述各個PC的SQL Server服務內容，數據項要求包含：PC ,ServerNr ,SQLServer, Agent ,FullTextSearch&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110210714104988.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110210714142942.png" border="0" height="275" width="550" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;『SQLSeverList.csv』存儲文件內容如下：&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;#SQL Server服務列表，本機使用"."來描述&lt;br /&gt;&lt;br /&gt;PC,ServerNr,SQLServer,Agent,FullTextSearch&lt;br /&gt;&lt;br /&gt;VM162,1,MSSQL$SQL2005DE1,SQLAgent$SQL2005DE1,msftesql$SQL2005DE1&lt;br /&gt;&lt;br /&gt;VM162,2,MSSQL$SQL2005DE2,SQLAgent$SQL2005DE2,msftesql$SQL2005DE2&lt;br /&gt;&lt;br /&gt;&amp;#8230; &amp;#8230;&lt;br /&gt;&lt;br /&gt;PC20,1,MSSQL$SQL01,SQLAgent$SQL01,msftesql$SQL01&lt;br /&gt;&lt;br /&gt;PC20,2,MSSQL$SQL02,SQLAgent$SQL02,msftesql$SQL02&lt;br /&gt;&lt;br /&gt;&amp;#8230; &amp;#8230;&lt;br /&gt;&lt;br /&gt;.,2,MSSQL$SQL2005DE2,SQLAgent$SQL2005DE2,msftesql$SQL2005DE2&lt;br /&gt;&lt;br /&gt;.,3,MSSQL$SQL2005DE3,SQLAgent$SQL2005DE3,msftesql$SQL2005DE3&lt;br /&gt;&lt;br /&gt;.,4,MSSQL$TEST,SQLAgent$TEST,msftesql$TEST&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;通過這個『SQLSeverList.csv』文件列表就可以找到對應的管理SQL Server服務。接下來通過PowerShell腳本，從文件『SQLSeverList.csv』篩選出要啟動的SQL Server服務。再通過PowerShell中的命令 Get-WmiObject -Class Win32_Service 獲取服務對象，然後調用服務對象Win32_Service中的方法StartService() 、 StopService() 啟動或停止服務。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;如果是連接遠程PC，可以採用類似命令:&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;Get-WmiObject -Class Win32_Service &amp;#8211;ComputerName &amp;lt;string[]&amp;gt; &amp;#8211; Credential &amp;lt;PSCredential&amp;gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;完整代碼：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;br /&gt;#===============配置部份===========================&lt;br /&gt;$User='HQ&lt;span style="color: #006080"&gt;\Andy';&lt;/span&gt;&lt;br /&gt;$CsvFile='E:\Stop&lt;span style="color: #006080"&gt;&amp;amp;&lt;/span&gt;StartSQLServer\SQLSeverList&lt;span style="color: #cc6633"&gt;.csv&lt;/span&gt;'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#==============可輸入部份(開始)====================&lt;br /&gt;&lt;br /&gt;$PC="VM162"           #本機使用"."來描述,非本機使用電腦名稱&lt;br /&gt;&lt;br /&gt;$ServerNr=4     #SQL Server實例編號,來源于SQLSeverList&lt;span style="color: #cc6633"&gt;.csv&lt;/span&gt;文件&lt;br /&gt;&lt;br /&gt;$ActionType=0     # 1: 開啟服務 ,0: 停止服務&lt;br /&gt;&lt;br /&gt;#==============可輸入部份(結束)====================&lt;br /&gt;&lt;span style="color: #006080"&gt;&amp;lt;&lt;/span&gt;#&lt;br /&gt;&lt;br /&gt;&amp;#8220;===可控制的服務列表: &amp;#8221;&lt;br /&gt;Import-Csv -Path $CsvFile | Format-Table -AutoSize -Wrap&lt;br /&gt;&lt;br /&gt;#&lt;span style="color: #006080"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;    $ServiceStr=Import-Csv -Path $CsvFile | Where-Object -FilterScript {($_&lt;span style="color: #cc6633"&gt;.PC&lt;/span&gt; -eq $PC) -And ($_&lt;span style="color: #cc6633"&gt;.ServerNr&lt;/span&gt; -eq $ServerNr)}&lt;br /&gt;    &lt;br /&gt;    if ($PC -ne ".")  #本機&lt;br /&gt;    {&lt;br /&gt;        $Credential_Login=Get-Credential -Credential $User&lt;br /&gt;        $Service_Agent=Get-WmiObject -Class Win32_Service -ComputerName $PC -Credential $Credential_Login | Where-Object -FilterScript {$_&lt;span style="color: #cc6633"&gt;.Name&lt;/span&gt; -eq $ServiceStr&lt;span style="color: #cc6633"&gt;.Agent&lt;/span&gt;}&lt;br /&gt;        $Service_SQLServer=Get-WmiObject -Class Win32_Service -ComputerName $PC -Credential $Credential_Login | Where-Object -FilterScript {$_&lt;span style="color: #cc6633"&gt;.Name&lt;/span&gt; -eq $ServiceStr&lt;span style="color: #cc6633"&gt;.SQLServer&lt;/span&gt;}&lt;br /&gt;        $Service_FullTextSearch=Get-WmiObject -Class Win32_Service -ComputerName $PC -Credential $Credential_Login | Where-Object -FilterScript {$_&lt;span style="color: #cc6633"&gt;.Name&lt;/span&gt; -eq $ServiceStr&lt;span style="color: #cc6633"&gt;.FullTextSearch&lt;/span&gt;}&lt;br /&gt;    &lt;br /&gt;    }&lt;br /&gt;    Else #網絡&lt;br /&gt;    {&lt;br /&gt;        $Service_Agent=Get-WmiObject -Class Win32_Service | Where-Object -FilterScript {$_&lt;span style="color: #cc6633"&gt;.Name&lt;/span&gt; -eq $ServiceStr&lt;span style="color: #cc6633"&gt;.Agent&lt;/span&gt;}&lt;br /&gt;        $Service_SQLServer=Get-WmiObject -Class Win32_Service | Where-Object -FilterScript {$_&lt;span style="color: #cc6633"&gt;.Name&lt;/span&gt; -eq $ServiceStr&lt;span style="color: #cc6633"&gt;.SQLServer&lt;/span&gt;}&lt;br /&gt;        $Service_FullTextSearch=Get-WmiObject -Class Win32_Service | Where-Object -FilterScript {$_&lt;span style="color: #cc6633"&gt;.Name&lt;/span&gt; -eq $ServiceStr&lt;span style="color: #cc6633"&gt;.FullTextSearch&lt;/span&gt;}&lt;br /&gt;    &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    $Running="Running"&lt;br /&gt;    $Stopped="Stopped"&lt;br /&gt;    &lt;br /&gt;    If ($ActionType -eq 1) #Start Service&lt;br /&gt;    {&lt;br /&gt;        if ($Service_SQLServer&lt;span style="color: #cc6633"&gt;.State&lt;/span&gt; -eq $Running)&lt;br /&gt;            {$Service_SQLServer&lt;span style="color: #cc6633"&gt;.Name&lt;/span&gt; +" 正在運行"}&lt;br /&gt;        Else &lt;br /&gt;            {$Result=$Service_SQLServer&lt;span style="color: #cc6633"&gt;.StartService&lt;/span&gt;()}&lt;br /&gt;            &lt;br /&gt;        if ($Service_Agent&lt;span style="color: #cc6633"&gt;.State&lt;/span&gt; -eq $Running)&lt;br /&gt;            {$Service_Agent&lt;span style="color: #cc6633"&gt;.Name&lt;/span&gt; +" 正在運行"}&lt;br /&gt;        Else &lt;br /&gt;            {$Result=$Service_Agent&lt;span style="color: #cc6633"&gt;.StartService&lt;/span&gt;()}&lt;br /&gt;        &lt;br /&gt;        if ($Service_FullTextSearch&lt;span style="color: #cc6633"&gt;.State&lt;/span&gt; -eq $Running)&lt;br /&gt;            {$Service_FullTextSearch&lt;span style="color: #cc6633"&gt;.Name&lt;/span&gt; +" 正在運行"}&lt;br /&gt;        Else &lt;br /&gt;            {$Result=$Service_FullTextSearch&lt;span style="color: #cc6633"&gt;.StartService&lt;/span&gt;()}                  &lt;br /&gt;    }&lt;br /&gt;    Else #Stop Service&lt;br /&gt;    {&lt;br /&gt;        if ($Service_FullTextSearch&lt;span style="color: #cc6633"&gt;.State&lt;/span&gt; -eq $Stopped)&lt;br /&gt;            {$Service_FullTextSearch&lt;span style="color: #cc6633"&gt;.Name&lt;/span&gt; +" 已停止."}&lt;br /&gt;        Else &lt;br /&gt;            {$Result=$Service_FullTextSearch&lt;span style="color: #cc6633"&gt;.StopService&lt;/span&gt;()}&lt;br /&gt;        &lt;br /&gt;        if ($Service_Agent&lt;span style="color: #cc6633"&gt;.State&lt;/span&gt; -eq $Stopped)&lt;br /&gt;            {$Service_Agent&lt;span style="color: #cc6633"&gt;.Name&lt;/span&gt; +" 已停止."}&lt;br /&gt;        Else &lt;br /&gt;            {$Result=$Service_Agent&lt;span style="color: #cc6633"&gt;.StopService&lt;/span&gt;()}&lt;br /&gt;        &lt;br /&gt;        if ($Service_SQLServer&lt;span style="color: #cc6633"&gt;.State&lt;/span&gt; -eq $Stopped)&lt;br /&gt;            {$Service_SQLServer&lt;span style="color: #cc6633"&gt;.Name&lt;/span&gt; +" 已停止."}&lt;br /&gt;        Else &lt;br /&gt;            {$Result=$Service_SQLServer&lt;span style="color: #cc6633"&gt;.StopService&lt;/span&gt;()}                    &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    "命令處理OK!"&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;Catch&lt;br /&gt;{&lt;br /&gt;    Write-Warning "執行腳本過程發生錯誤"&lt;br /&gt;    Write-Error $_ #輸出當前錯誤內容&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;演示：&lt;/font&gt; &lt;/strong&gt;&#xD;
&#xD;
  &lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;strong&gt;&lt;/strong&gt;&#xD;
&#xD;
&#xD;
&#xD;
&lt;p&gt;現在要啟動遠程PC的SQL Server實例『VM\SQL2005DE4』，包含『VM\SQL2005DE4』的3個服務： &#xD;
  &lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&#xD;
      &lt;tr&gt;&#xD;
        &lt;td valign="top" width="189"&gt;&#xD;
          &lt;p&gt;MSSQL$SQL2005DE4&lt;/p&gt;&#xD;
        &lt;/td&gt;&#xD;
&#xD;
        &lt;td valign="top" width="189"&gt;&#xD;
          &lt;p&gt;SQLAgent$SQL2005DE4&lt;/p&gt;&#xD;
        &lt;/td&gt;&#xD;
&#xD;
        &lt;td valign="top" width="189"&gt;&#xD;
          &lt;p&gt;msftesql$SQL2005DE4&lt;/p&gt;&#xD;
        &lt;/td&gt;&#xD;
      &lt;/tr&gt;&#xD;
    &lt;/tbody&gt;&lt;/table&gt;&#xD;
&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/20111021071417731.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110210714206601.png" border="0" height="462" width="732" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;font color="#ff0000"&gt;$User 這裡使用的是與帳戶&amp;#8221;HQ\Andy&amp;#8221;,而且這個帳戶具有管理電腦VM162的權限功能。&lt;/font&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;點擊Powershell_ise介面上的三角形執行腳本按鈕。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110210714239406.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110210714268723.png" border="0" height="495" width="734" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;這裡會彈出一個Windows登錄認證窗口，輸入我們的帳號密碼，點擊確認按鈕繼續。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110210714279378.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110210714288888.png" border="0" height="148" width="296" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;從狀態欄就會看到正在執行的信息提示，根據實際情況運行時間長短的不同，最後我們會收到是否處理完成的提示：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110210714298671.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110210714304069.png" border="0" height="50" width="742" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;如果服務已經在運行，我們就看到服務正在運行的信息提示：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110210714314201.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110210714321792.png" border="0" height="106" width="744" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;小結 &lt;/font&gt;&#xD;
&#xD;
    &lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;strong&gt;&lt;/strong&gt;&#xD;
&#xD;
&#xD;
&#xD;
&lt;p&gt;PowerShell腳本代碼，看起來是很容易的，而且功能還不錯，它是建立在 .NET (CLR) 和 .NET Framework 上，而且可接受和傳回 .NET 對象。在安裝SQL Server 2008中就附帶有PowerShell 1.0。目前最新版本是PowerShell 2.0.帶有Powershell_ise工具，使用起來更便捷。如果你經常涉及到管理Windows系統或SQL Server 服務器，那麼學習瞭解PowerShell是不錯的選擇。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wghao/aggbug/2219789.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wghao/archive/2011/10/21/2219789.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wghao/archive/2011/10/14/2212637.html</id><title type="text">發行項帶篩選的合併複製問題之----訂閱者更新導致部份數據丟失</title><summary type="text">开始，下边的内容是我在工作中，碰到的问题，并且拿出来进行分析和解决，是对其过程的描述。由于时间原因没有进行繁体简体的转换。在一些字眼或术语中，简体繁体之间可能存在些差异。 如有不明可以通过文章后面的留言发表意见和建议，或发Email与我联系。問題描述 在SQL Server 2005(版本：Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86))，帶篩選的合併複製中，發現有這樣的一個問題，在訂閱者Insert數據，數據上傳到發行者，然後下載至訂閱者，發現訂閱者的部份數據被Delete，如圖描述： 下面就真實環境中的問題，...</summary><published>2011-10-14T14:43:00Z</published><updated>2011-10-14T14:43:00Z</updated><author><name>OK_008</name><uri>http://www.cnblogs.com/wghao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wghao/archive/2011/10/14/2212637.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wghao/archive/2011/10/14/2212637.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 18pt;"&gt;开&lt;/span&gt;&lt;/strong&gt;始，下边的内容是我在工作中，碰到的问题，并且拿出来进行分析和解决，是对其过程的描述。由于时间原因没有进行繁体简体的转换。在一些字眼或术语中，简体繁体之间可能存在些差异。 如有不明可以通过文章后面的留言发表意见和建议，或发Email与我联系。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;font size="5"&gt;問題描述&lt;/font&gt;      &lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt;在SQL Server 2005(版本：Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86))，帶篩選的合併複製中，發現有這樣的一個問題，在訂閱者Insert數據，數據上傳到發行者，然後下載至訂閱者，發現訂閱者的部份數據被Delete，如圖描述：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142213425311.png"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_b2232227-7e9f-491c-81e9-5080af19dee5" onclick="cnblogs_code_hide('b2232227-7e9f-491c-81e9-5080af19dee5',event)" style="display:none"&gt;&lt;div id="cnblogs_code_open_b2232227-7e9f-491c-81e9-5080af19dee5" &gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;Use&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ReplicationDB&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;/*&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;創建表結構Andy&amp;nbsp;2011-10-13&lt;/span&gt;&lt;span style="color: #008080;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;--&lt;/span&gt;&lt;span style="color: #008080;"&gt;(1/5)&amp;nbsp;DataOwner&lt;/span&gt;&lt;span style="color: #008080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;object_id&lt;/span&gt;(&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;[DataOwner]&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Is&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Create&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;DataOwner&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;smallint&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;Identity&lt;/span&gt;(&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;,&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&amp;nbsp;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Owner&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color: #800000; font-weight: bold;"&gt;50&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Alter&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;DataOwner&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Add&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Constraint&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;PK_DataOwner&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Primary&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Key&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Clustered&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Asc&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;--&lt;/span&gt;&lt;span style="color: #008080;"&gt;(2/5)&amp;nbsp;Data1&lt;/span&gt;&lt;span style="color: #008080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;object_id&lt;/span&gt;(&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;[Data1]&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Is&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Create&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Data1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;uniqueidentifier&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&amp;nbsp;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;OwnerID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;smallint&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Alter&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Data1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Add&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Constraint&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;PK_Data1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Primary&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Key&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Nonclustered&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Asc&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Alter&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Data1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Add&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Constraint&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;FK_Data1_DataOwner&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreign&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Key&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;OwnerID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;References&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;DataOwner&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;--&lt;/span&gt;&lt;span style="color: #008080;"&gt;(3/5)&amp;nbsp;Data2&lt;/span&gt;&lt;span style="color: #008080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;object_id&lt;/span&gt;(&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;[Data2]&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Is&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Create&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Data2&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;uniqueidentifier&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&amp;nbsp;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ParentID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;uniqueidentifier&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Alter&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Data2&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Add&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Constraint&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;PK_Data2&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Primary&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Key&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Nonclustered&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Asc&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Alter&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Data2&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Add&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Constraint&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;FK_Data2_Data1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreign&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Key&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ParentID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;References&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Data1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;--&lt;/span&gt;&lt;span style="color: #008080;"&gt;(4/5)&amp;nbsp;SysDataType&lt;/span&gt;&lt;span style="color: #008080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;object_id&lt;/span&gt;(&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;[SysDataType]&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Is&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Create&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;SysDataType&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;smallint&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;Identity&lt;/span&gt;(&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;,&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&amp;nbsp;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color: #800000; font-weight: bold;"&gt;50&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Alter&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;SysDataType&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Add&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Constraint&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;PK_SysDataType&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Primary&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Key&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Nonclustered&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Asc&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;--&lt;/span&gt;&lt;span style="color: #008080;"&gt;(5/5)&amp;nbsp;DataRelation&lt;/span&gt;&lt;span style="color: #008080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;object_id&lt;/span&gt;(&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;[DataRelation]&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Is&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Create&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;DataRelation&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;uniqueidentifier&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&amp;nbsp;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ParentID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;uniqueidentifier&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&amp;nbsp;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;DataTypeID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;smallint&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Null&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Alter&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;DataRelation&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Add&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Constraint&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;PK_DataRelation&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Primary&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Key&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Nonclustered&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Asc&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Alter&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;DataRelation&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Add&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Constraint&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;FK_DataRelation_DataTypeID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Foreign&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Key&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;DataTypeID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;References&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;SysDataType&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Alter&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Table&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;DataRelation&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Add&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Constraint&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;U_DataRelation_ParentID_DataTypeID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Unique&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Nonclustered&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;ParentID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;,&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;DataTypeID&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Exists&lt;/span&gt;(&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;From&lt;/span&gt;&amp;nbsp;SysDataType)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Insert&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;into&lt;/span&gt;&amp;nbsp;SysDataType&amp;nbsp;(Name)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;N&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;DataType1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Union&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;All&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;N&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;DataType2&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Union&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;All&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;N&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;DataType3&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Exists&lt;/span&gt;(&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;From&lt;/span&gt;&amp;nbsp;DataOwner)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Insert&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;into&lt;/span&gt;&amp;nbsp;DataOwner&amp;nbsp;(&lt;span style="color: #FF0000;"&gt;[&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Owner&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;]&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;N&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;PC1&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Union&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;All&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;N&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;PC2&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Union&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;All&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;N&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;PC3&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;--&lt;/span&gt;&lt;span style="color: #008080;"&gt;Procedures&lt;/span&gt;&lt;span style="color: #008080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;object_id&lt;/span&gt;(&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;sp_InsertData&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Is&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Drop&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Procedure&lt;/span&gt;&amp;nbsp;sp_InsertData&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Create&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Procedure&lt;/span&gt;&amp;nbsp;sp_InsertData&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;@ID&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;uniqueidentifier&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;@ParentID&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;uniqueidentifier&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;@DataType1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Smallint&lt;/span&gt;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;@DataType2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Smallint&lt;/span&gt;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;@DataType3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Smallint&lt;/span&gt;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;)&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Begin&lt;/span&gt;&amp;nbsp;Try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Begin&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;tran&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Insert&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;into&lt;/span&gt;&amp;nbsp;Data2(ID,ParentID)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Values&lt;/span&gt;(&lt;span style="color: #008000;"&gt;@ID&lt;/span&gt;,&lt;span style="color: #008000;"&gt;@ParentID&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;;&lt;span style="color: #0000FF;"&gt;With&lt;/span&gt;&amp;nbsp;CTE_Data&amp;nbsp;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;@DataType1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&amp;nbsp;DataTypeID&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Union&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;All&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;@DataType2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&amp;nbsp;DataTypeID&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Union&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;All&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;@DataType3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&amp;nbsp;DataTypeID&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Insert&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;into&lt;/span&gt;&amp;nbsp;DataRelation(ID,ParentID,DataTypeID)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;newid&lt;/span&gt;(),&lt;span style="color: #008000;"&gt;@ID&lt;/span&gt;,DataTypeID&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;From&lt;/span&gt;&amp;nbsp;CTE_Data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Where&lt;/span&gt;&amp;nbsp;DataTypeID&amp;nbsp;&lt;span style="color: #0000FF;"&gt;is&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Commit&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Tran&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&amp;nbsp;Try&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Begin&lt;/span&gt;&amp;nbsp;Catch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Declare&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;@Error&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color: #800000; font-weight: bold;"&gt;2047&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Set&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;@Error&lt;/span&gt;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;Error_message()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Raiserror&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;50001&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;@Error&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Rollback&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Tran&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&amp;nbsp;Catch&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="color: #FF00FF;"&gt;object_id&lt;/span&gt;(&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;sp_DeleteData&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Is&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;not&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Drop&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Procedure&lt;/span&gt;&amp;nbsp;sp_DeleteData&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Create&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Procedure&lt;/span&gt;&amp;nbsp;sp_DeleteData&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;@ID&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;uniqueidentifier&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;)&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Begin&lt;/span&gt;&amp;nbsp;Try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Begin&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;tran&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Delete&lt;/span&gt;&amp;nbsp;c&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;From&lt;/span&gt;&amp;nbsp;Data1&amp;nbsp;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&amp;nbsp;a&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Inner&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Join&lt;/span&gt;&amp;nbsp;Data2&amp;nbsp;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&amp;nbsp;b&amp;nbsp;&lt;span style="color: #0000FF;"&gt;On&lt;/span&gt;&amp;nbsp;b.ParentID&lt;span style="color: #808080;"&gt;=&lt;/span&gt;a.ID&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Inner&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Join&lt;/span&gt;&amp;nbsp;DataRelation&amp;nbsp;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&amp;nbsp;c&amp;nbsp;&lt;span style="color: #0000FF;"&gt;On&lt;/span&gt;&amp;nbsp;c.ParentID&lt;span style="color: #808080;"&gt;=&lt;/span&gt;b.ID&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Where&lt;/span&gt;&amp;nbsp;a.ID&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #008000;"&gt;@ID&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Delete&lt;/span&gt;&amp;nbsp;b&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;From&lt;/span&gt;&amp;nbsp;Data1&amp;nbsp;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&amp;nbsp;a&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Inner&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;Join&lt;/span&gt;&amp;nbsp;Data2&amp;nbsp;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&amp;nbsp;b&amp;nbsp;&lt;span style="color: #0000FF;"&gt;On&lt;/span&gt;&amp;nbsp;b.ParentID&lt;span style="color: #808080;"&gt;=&lt;/span&gt;a.ID&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Where&lt;/span&gt;&amp;nbsp;a.ID&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #008000;"&gt;@ID&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Delete&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;From&lt;/span&gt;&amp;nbsp;Data1&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Where&lt;/span&gt;&amp;nbsp;ID&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #008000;"&gt;@ID&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Commit&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Tran&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&amp;nbsp;Try&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Begin&lt;/span&gt;&amp;nbsp;Catch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Declare&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;@Error&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color: #800000; font-weight: bold;"&gt;2047&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Set&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;@Error&lt;/span&gt;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;Error_message()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Raiserror&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;50001&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;@Error&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Rollback&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Tran&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&amp;nbsp;Catch&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;Go&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;腳本中的存儲過程sp_InsertData，sp_DeleteData 只是爲了分析過程應用到。&lt;/p&gt;  &lt;p&gt;下面抽取【中央DB】&amp;#224;【分支DB】其中1條ReplicationDB同步例子來看在訂閱者Insert數據，會導致訂閱者部份數據給Delete掉，如圖描述（&lt;em&gt;同步設置過程這裡忽略&lt;/em&gt;）：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142213487715.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142213519992.png" border="0" height="189" width="637" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;上图，在訂閱者向表DataRelation插入了5條記錄，並且成功上載至發行者。最後一行發現下載變更到訂閱者，對表DataRelation刪除了剛上載的5條記錄。導致了訂閱者DataRelation新增的數據丟失。在發行者上，對DataRelation新插入的數據是沒有被刪除的。&lt;/p&gt;  &lt;p&gt;下面表格是補充例子中的幾個資料表的篩選條件：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142213513306.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142213523448.png" border="0" height="202" width="636" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;在發行者上Insert，會不會發生類似的問題呢？在實際例子中是正常的，如图：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/20111014221353317.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142213544089.png" border="0" height="171" width="641" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;可以看出在在發行者向表DataRelation插入數據，下載變更到訂閱者過程中只有插入5條記錄的動作，沒看到在訂閱者的刪除動作。&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="5"&gt;問題分析&lt;/font&gt;      &lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt;接下來，我們跟蹤合併複製的過程，來分析問題所在。SQL Server提供了一些系統表來為我們跟蹤複製的同步過程,如：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt; Sysmergearticles 描述發行項內容，包含有nickname發現項的暱稱，分析過程會用到這一字段關聯。&lt;/li&gt;    &lt;li&gt; MSmerge_contents 包含已發行資料表中Inserted/Updated的行(row).&lt;/li&gt;    &lt;li&gt; MSmerge_tombstone包含已發行資料表中deleted的行(row).&lt;/li&gt;    &lt;li&gt; MSmerge_genhistory包含傳遞至發行者或訂閱者的變更集合.簡單說就是記錄發行者/訂閱者的Inserted/Updated/deleted歷史。&lt;/li&gt;    &lt;li&gt; MSmerge_partition_groups資料表會針對給定資料庫中每個預先計算的資料分割，各儲存一個資料列。當前分析，暫不用應用不到。&lt;/li&gt;    &lt;li&gt; MSmerge_current_partition_mappings 描述Inserted/Updated的分區信息，與MSmerge_contents 相關。&lt;/li&gt;    &lt;li&gt; MSmerge_past_partition_mappings描述Updated/Deleted的分區信息，與MSmerge_contents 和MSmerge_tombstone 相關。&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;做個例子，在Microsoft SQL Server Management Studio(MSSMS)，連接到訂閱者伺候器上，對ReplicationDB數據庫做個Insert數據的實例，類似于前面的操作：&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; ReplicationDB&lt;br /&gt;&lt;span style="color: #0000ff"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Begin&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Tran&lt;/span&gt;&lt;br /&gt;    Insert &lt;span style="color: #0000ff"&gt;into&lt;/span&gt; Data1(ID,OwnerID)&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;values&lt;/span&gt; (&lt;span style="color: #006080"&gt;'80B370BA-446A-48D3-9EAC-2DE7FDC11997'&lt;/span&gt;,3)&lt;br /&gt;            &lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sp_InsertData &lt;br /&gt;            @ID = &lt;span style="color: #006080"&gt;'ACE3BA3E-C6FE-49B5-8E19-AB2F0F894F09'&lt;/span&gt;, &lt;span style="color: #008000"&gt;-- uniqueidentifier&lt;/span&gt;&lt;br /&gt;            @ParentID = &lt;span style="color: #006080"&gt;'80B370BA-446A-48D3-9EAC-2DE7FDC11997'&lt;/span&gt;, &lt;span style="color: #008000"&gt;-- uniqueidentifier&lt;/span&gt;&lt;br /&gt;            @DataType1 = 1, &lt;span style="color: #008000"&gt;-- smallint&lt;/span&gt;&lt;br /&gt;            @DataType2 = 2, &lt;span style="color: #008000"&gt;-- smallint&lt;/span&gt;&lt;br /&gt;            @DataType3 = &lt;span style="color: #0000ff"&gt;default&lt;/span&gt; &lt;span style="color: #008000"&gt;-- smallint&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sp_InsertData &lt;br /&gt;            @ID = &lt;span style="color: #006080"&gt;'AFD1B3B5-45D1-4F97-B4DA-AA6BF965C8BD'&lt;/span&gt;, &lt;span style="color: #008000"&gt;-- uniqueidentifier&lt;/span&gt;&lt;br /&gt;            @ParentID = &lt;span style="color: #006080"&gt;'80B370BA-446A-48D3-9EAC-2DE7FDC11997'&lt;/span&gt;, &lt;span style="color: #008000"&gt;-- uniqueidentifier&lt;/span&gt;&lt;br /&gt;            @DataType1 = 1, &lt;span style="color: #008000"&gt;-- smallint&lt;/span&gt;&lt;br /&gt;            @DataType2 = 2, &lt;span style="color: #008000"&gt;-- smallint&lt;/span&gt;&lt;br /&gt;            @DataType3 = 3 &lt;span style="color: #008000"&gt;-- smallint&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Commit&lt;/span&gt; &lt;span style="color: #0000ff"&gt;tran&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;Commit Tran代碼後面，填寫上跟蹤同步過程的T-SQL語句：&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;--跟蹤&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; sysmergearticles &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; name=&lt;span style="color: #006080"&gt;'DataRelation'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; MSmerge_contents &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; tablenick=16720001 &lt;span style="color: #0000ff"&gt;Order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;by&lt;/span&gt; generation &lt;span style="color: #0000ff"&gt;Desc&lt;/span&gt; &lt;span style="color: #008000"&gt;/*tablenick=25999002: OUPartitionAssignmentPlan*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; MSmerge_tombstone &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; tablenick=16720001 &lt;span style="color: #0000ff"&gt;Order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;by&lt;/span&gt; generation &lt;span style="color: #0000ff"&gt;Desc&lt;/span&gt; &lt;span style="color: #008000"&gt;/*tablenick=25999002: OUPartitionAssignmentPlan*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; MSmerge_genhistory &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; art_nick=16720001 &lt;span style="color: #0000ff"&gt;Order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;by&lt;/span&gt; coldate &lt;span style="color: #0000ff"&gt;Desc&lt;/span&gt;,generation &lt;span style="color: #0000ff"&gt;Desc&lt;/span&gt; &lt;span style="color: #008000"&gt;/*art_nick=25999002: OUPartitionAssignmentPlan*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; a.*,b.name &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; MSmerge_current_partition_mappings &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; a &lt;span style="color: #0000ff"&gt;Inner&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Join&lt;/span&gt; sysmergearticles &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; b &lt;span style="color: #0000ff"&gt;On&lt;/span&gt; b.nickname=a.tablenick&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; MSmerge_past_partition_mappings  &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; tablenick=16720001 &lt;span style="color: #0000ff"&gt;Order&lt;/span&gt; &lt;span style="color: #0000ff"&gt;by&lt;/span&gt; generation &lt;span style="color: #0000ff"&gt;Desc&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;對MSmerge, MSmerge_tombstone, MSmerge_genhistory, MSmerge_past_partition_mappings表，只是查詢出有關DataRelation表的數據，通過sysmergearticles表中的nickname列返回的值作為Where參考值。經過執行上面的兩個連續的腳本，可得到似下面的結果數據：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142213574806.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142214011378.png" border="0" height="291" width="761" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;這裡捕捉到訂閱者MSmerge_genhistory表中有一條記錄generation=74，genstatus=1(已開啟狀態)&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;，來自訂閱者本身的Insert操作，影響記錄行為2，在MSmerge_contents表可以找到兩行generation=74的記錄行與之對應。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;等到數據同步OK(&lt;em&gt;連續執行的合併複製，默認訂閱間隔時間是&lt;/em&gt;&lt;em&gt;1&lt;/em&gt;&lt;em&gt;分鐘&lt;/em&gt;),我們再看回MSmerge_genhistory,MSmerge_contents,MSmerge_tombstone表的數據變化：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142214051538.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142214094946.png" border="0" height="389" width="761" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;相隔大約1分鐘后，數據從發行者同步回到訂閱者，MSmerge_genhistory 發現多了1行generation=75的歷史記錄，而且在MSmerge_tombstone表中發現新加入5行generation=75的記錄行。說明有資料表DataRelation有數據被刪除了。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在訂閱者，我們發現了DataRelation 表Insert動作，引發同步過程的變化。在此期間，我們先不要對資料表DataRelation進行其他的更新刪除操作，接著來看在發行者，DataRelation 表的Insert 過程如何變化。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142214155498.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142214249000.png" border="0" height="593" width="768" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在發行者，MSmerge_genhistory表新插入有兩條記錄，coldate時間比較少的1條的genstatus=2,表示已關閉，並且已在另一個訂閱者產生，這個訂閱者為subscriber_number=2(&lt;em&gt;可以通過&lt;/em&gt;&lt;em&gt;Select subscriber_number,subscriber_server from sysmergesubscriptions&lt;/em&gt;&lt;em&gt;查詢到&lt;/em&gt;subscriber_number&lt;em&gt;對應的&lt;/em&gt;&lt;em&gt;subscriber_serve&lt;/em&gt;&lt;em&gt;數據&lt;/em&gt;&lt;em&gt;)&lt;/em&gt;。是于generation=63，在這裡無法找到對應的關聯數據，可能是在上載到發行者的時候發生，這位置捕捉不到。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;MSmerge_genhistory表中，coldate時間比較晚的1條generation=65，可以在MSmerge_contents，MSmerge_past_partition_mappings表中找到對應的數據。問題就是這裡，MSmerge_past_partition_mappings中怎麼會存在generation=65的數據，按正常，Insert數據的時候，在MSmerge_current_partition_mappings表有1條或多條記錄與之對應。出現在MSmerge_past_partition_mappings表，只有Update or Delete的時候才會發生。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;跟蹤都這裡，開始的時候，我判斷在SQL Server 合併複製中的觸發器某一環節出現bug導致這樣的問題出現，還在SQL Server 2008 R2上測試沒問題。後來查證了MSDN上的資料，得到一些啓發:&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;在合併同步處理期間，依預設，發行項將按物件間相依性所需的順序處理，包括在基底資料表上定義的宣告式參考完整性&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt; (DRI) &lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;條件約束。處理包括列舉對資料表所作的變更，然後套用這些變更。如果沒有&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt; DRI&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;，但資料表發行項之間存在聯結篩選或邏輯記錄，發行項將以篩選和邏輯記錄所需的順序處理。透過&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt; DRI&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;、聯結篩選、邏輯記錄或其他相依性與任何其他發行項無關的發行項。&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;根據這一說明，先從DRI方面考慮，先去瞭解各個表的結構。因為沒有設置過邏輯記錄的順序處理編號，通過下面的T-SQL語句可以查詢：&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; name,processing_order &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; sysmergearticles&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142214248378.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142214256916.png" border="0" height="114" width="244" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;當看回表結構的時候，果真發現了問題所在：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;Create&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; [DataRelation]&lt;br /&gt;    (&lt;br /&gt;        [ID] uniqueidentifier &lt;span style="color: #0000ff"&gt;not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt; ,&lt;br /&gt;        [ParentID] uniqueidentifier &lt;span style="color: #0000ff"&gt;Null&lt;/span&gt; ,&lt;br /&gt;        [DataTypeID] &lt;span style="color: #0000ff"&gt;smallint&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Null&lt;/span&gt; &lt;br /&gt;    )&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Alter&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; [DataRelation] &lt;span style="color: #0000ff"&gt;Add&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Constraint&lt;/span&gt; [PK_DataRelation] &lt;span style="color: #0000ff"&gt;Primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Key&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Nonclustered&lt;/span&gt; ([ID] &lt;span style="color: #0000ff"&gt;Asc&lt;/span&gt;)&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Alter&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; [DataRelation] &lt;span style="color: #0000ff"&gt;Add&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Constraint&lt;/span&gt; [FK_DataRelation_DataTypeID] &lt;span style="color: #0000ff"&gt;Foreign&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Key&lt;/span&gt; ([DataTypeID]) &lt;span style="color: #0000ff"&gt;References&lt;/span&gt; [SysDataType] ([ID])&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Alter&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Table&lt;/span&gt; [DataRelation] &lt;span style="color: #0000ff"&gt;Add&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Constraint&lt;/span&gt; [U_DataRelation_ParentID_DataTypeID] &lt;span style="color: #0000ff"&gt;Unique&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Nonclustered&lt;/span&gt; ([ParentID],[DataTypeID])&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;資料表DataRelation，在字段ParentID上沒有創建外鍵約束。這裡沒有外鍵約束，同步過程中無法套用DRI條件約束，而且又沒設置邏輯記錄的順序處理，導致了問題所在。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;table border="1" cellpadding="0" cellspacing="0" width="1057"&gt;&lt;tbody&gt;&#xD;
    &lt;tr&gt;&#xD;
      &lt;td valign="top" width="1055"&gt;&#xD;
        &lt;p&gt;&lt;strong&gt;提示：&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
        &lt;p&gt;如果想瞭解有關SQL Server 合併複製的跟蹤說明，可以參考聯機幫助文檔的《合併式複寫如何追蹤和列舉變更》：&lt;/p&gt;&#xD;
&#xD;
        &lt;p&gt;&lt;strong&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/library/ms151789%28v=SQL.90%29.aspx"&gt;http://msdn.microsoft.com/zh-cn/library/ms151789(v=SQL.90).aspx&lt;/a&gt;&lt;/strong&gt; （簡體說明）&lt;/p&gt;&#xD;
&#xD;
        &lt;p&gt;&lt;strong&gt;&lt;a href="http://msdn.microsoft.com/zh-tw/library/ms151789%28v=SQL.90%29.aspx"&gt;http://msdn.microsoft.com/zh-tw/library/ms151789(v=SQL.90).aspx&lt;/a&gt;&lt;/strong&gt; (繁體說明)&lt;/p&gt;&#xD;
&#xD;
        &lt;p&gt;&lt;strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms151789%28v=SQL.90%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms151789(v=SQL.90).aspx&lt;/a&gt;&lt;/strong&gt; (英文說明)&lt;/p&gt;&#xD;
&#xD;
        &lt;p&gt;《指定合併發行項的處理順序》:&lt;/p&gt;&#xD;
&#xD;
        &lt;p&gt;&lt;strong&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/library/ms152469%28v=SQL.90%29"&gt;http://msdn.microsoft.com/zh-cn/library/ms152469(v=SQL.90)&lt;/a&gt;&lt;/strong&gt; (簡體說明)&lt;/p&gt;&#xD;
&#xD;
        &lt;p&gt;&lt;strong&gt;&lt;a href="http://msdn.microsoft.com/zh-tw/library/ms152469%28v=SQL.90%29"&gt;http://msdn.microsoft.com/zh-tw/library/ms152469(v=SQL.90)&lt;/a&gt;&lt;/strong&gt; (繁體說明)&lt;/p&gt;&#xD;
&#xD;
        &lt;p&gt;&lt;strong&gt;術語：&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
        &lt;p&gt;&lt;strong&gt;DRI&lt;/strong&gt;: declarative referential integrity 宣告式參考完整性，簡體意思是声明性引用完整性。&lt;/p&gt;&#xD;
      &lt;/td&gt;&#xD;
    &lt;/tr&gt;&#xD;
  &lt;/tbody&gt;&lt;/table&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="5"&gt;解決方法&lt;/font&gt;&lt;/strong&gt;&#xD;
&#xD;
  &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;strong&gt;&lt;/strong&gt;&#xD;
&#xD;
&lt;p&gt;根據前邊的分析，這裡列出幾個解決方法:&lt;/p&gt;&#xD;
&#xD;
&lt;ul&gt;&#xD;
  &lt;li&gt;增加外鍵約束，在資料表DataRelation字段ParentID上增加外鍵約束&lt;/li&gt;&#xD;
&#xD;
  &lt;li&gt;增加Check約束，在資料表DataRelation創建Check約束，檢查ParentID是否在資料表DATA2存在&lt;/li&gt;&#xD;
&#xD;
  &lt;li&gt;設置邏輯記錄的處理順序&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;增加外鍵約束&lt;/strong&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;在不重新設置同步複寫的前提下，在發行者實例上執行創建外鍵的腳本：&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; ReplicationDB&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; object_id(&lt;span style="color: #006080"&gt;'FK_DataRelation_ParentID'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;Is&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Alter&lt;/span&gt; &lt;span style="color: #0000ff"&gt;table&lt;/span&gt; DataRelation &lt;span style="color: #0000ff"&gt;Add&lt;/span&gt; &lt;span style="color: #0000ff"&gt;COnstraint&lt;/span&gt; FK_DataRelation_ParentID &lt;span style="color: #0000ff"&gt;foreign&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Key&lt;/span&gt;(ParentID) &lt;span style="color: #0000ff"&gt;References&lt;/span&gt; Data2(ID)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;增加&lt;/strong&gt;&lt;strong&gt;Check&lt;/strong&gt;&lt;strong&gt;約束&lt;/strong&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;在不重新設置同步複寫的前提下，增加Check約束需要按嚴格的步驟進行。先在發行者和訂閱者兩個實例上執行腳本(&lt;em&gt;檢查資料表&lt;/em&gt;&lt;em&gt;DataRelation&lt;/em&gt;&lt;em&gt;中的&lt;/em&gt;&lt;em&gt;ParentID&lt;/em&gt;&lt;em&gt;列數據是否在資料表&lt;/em&gt;&lt;em&gt;Data2&lt;/em&gt;&lt;em&gt;中存在&lt;/em&gt;)：&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; ReplicationDB&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; object_id(&lt;span style="color: #006080"&gt;'Fn_CheckDataRelation_ParentID'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;Is&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Null&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Drop&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; Fn_CheckDataRelation_ParentID&lt;br /&gt;&lt;span style="color: #0000ff"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Create&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; Fn_CheckDataRelation_ParentID&lt;br /&gt;(&lt;br /&gt;    @ParentID uniqueidentifier&lt;br /&gt;)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Returns&lt;/span&gt; &lt;span style="color: #0000ff"&gt;bit&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Return&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Case&lt;/span&gt; &lt;span style="color: #0000ff"&gt;When&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Exists&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; 1 &lt;span style="color: #0000ff"&gt;From&lt;/span&gt; Data2 &lt;span style="color: #0000ff"&gt;Where&lt;/span&gt; ID=@ParentID) &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt; 1 &lt;span style="color: #0000ff"&gt;Else&lt;/span&gt; 0 &lt;span style="color: #0000ff"&gt;End&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;再在發行者實例上執行下面的創建Check約束腳本：&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; ReplicationDB&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; object_id(&lt;span style="color: #006080"&gt;'CK_DataRelation_ParentID'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;Is&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;Alter&lt;/span&gt; &lt;span style="color: #0000ff"&gt;table&lt;/span&gt; DataRelation &lt;span style="color: #0000ff"&gt;Add&lt;/span&gt; &lt;span style="color: #0000ff"&gt;COnstraint&lt;/span&gt; CK_DataRelation_ParentID &lt;span style="color: #0000ff"&gt;Check&lt;/span&gt;(dbo.Fn_CheckDataRelation_ParentID(ParentID)=1)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;設置邏輯記錄的處理順序&lt;/strong&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;在不重新設置同步複寫的前提下，在發行者實例上執行下面的腳本&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&#xD;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;use&lt;/span&gt; ReplicationDB&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sys.sp_changemergearticle &lt;br /&gt;      @publication = &lt;span style="color: #006080"&gt;'Merge-PC3'&lt;/span&gt;,&lt;br /&gt;        @article = &lt;span style="color: #006080"&gt;'DataOwner'&lt;/span&gt;,&lt;br /&gt;        @property = &lt;span style="color: #006080"&gt;'processing_order'&lt;/span&gt;,&lt;br /&gt;        @&lt;span style="color: #0000ff"&gt;value&lt;/span&gt; = 10,&lt;br /&gt;        @force_invalidate_snapshot =0,&lt;br /&gt;        @force_reinit_subscription =0&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sys.sp_changemergearticle &lt;br /&gt;      @publication = &lt;span style="color: #006080"&gt;'Merge-PC3'&lt;/span&gt;,&lt;br /&gt;        @article = &lt;span style="color: #006080"&gt;'Data1'&lt;/span&gt;,&lt;br /&gt;        @property = &lt;span style="color: #006080"&gt;'processing_order'&lt;/span&gt;,&lt;br /&gt;        @&lt;span style="color: #0000ff"&gt;value&lt;/span&gt; = 20,&lt;br /&gt;        @force_invalidate_snapshot =0,&lt;br /&gt;        @force_reinit_subscription =0&lt;br /&gt;        &lt;br /&gt;&lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sys.sp_changemergearticle &lt;br /&gt;      @publication = &lt;span style="color: #006080"&gt;'Merge-PC3'&lt;/span&gt;,&lt;br /&gt;        @article = &lt;span style="color: #006080"&gt;'Data2'&lt;/span&gt;,&lt;br /&gt;        @property = &lt;span style="color: #006080"&gt;'processing_order'&lt;/span&gt;,&lt;br /&gt;        @&lt;span style="color: #0000ff"&gt;value&lt;/span&gt; = 30,&lt;br /&gt;        @force_invalidate_snapshot =0,&lt;br /&gt;        @force_reinit_subscription =0&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;Exec&lt;/span&gt; sys.sp_changemergearticle &lt;br /&gt;      @publication = &lt;span style="color: #006080"&gt;'Merge-PC3'&lt;/span&gt;,&lt;br /&gt;        @article = &lt;span style="color: #006080"&gt;'DataRelation'&lt;/span&gt;,&lt;br /&gt;        @property = &lt;span style="color: #006080"&gt;'processing_order'&lt;/span&gt;,&lt;br /&gt;        @&lt;span style="color: #0000ff"&gt;value&lt;/span&gt; = 40,&lt;br /&gt;        @force_invalidate_snapshot =0,&lt;br /&gt;        @force_reinit_subscription =0        &lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;上面腳本是通過SQL Server提供的系統函數sys.sp_changemergearticle 來設置各個表的同步處理順序：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142214257963.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201110/201110142214263786.png" border="0" height="122" width="362" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;當Insert數據的時候，會先處理資料表DataOwner，最後是處理資料表DataRelation。相反，當Delete數據的時候，會先處理資料表DataRelation,最後處理資料表DataOwner。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;數值10,20,30,40 這樣的設置，也是有其意義的，當我們日後有新增一張資料表，它在合併複製中的處理順序是在資料表Data1和資料表Data2之間，那麼我們直接設置新增加的資料表處理順序為25，不需要再設置處理順序&amp;gt;20的資料表處理順序。這一點在真實應用環境中，是值得參考的。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong style="font-size: 24pt;"&gt;小結：&#xD;
    &lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;綜上所述，在具有篩選的合併式複製中，在篩選條件中含有多表關聯時候，特別要注意表的結構，檢查篩選的字段是否存在外鍵、Check約束，或者是否有設置了合併複製的處理順序。在一些古老的數據庫機構中，我們無法保證篩選的字段存在外鍵或Check約束，這時候，個人認為優先考慮的是外鍵，無法使用外鍵的時候，考慮是否可以使用Check約束；在不能改變數據庫資料表結構，或者對各表的關係非常的熟悉，最後可以考慮使用合併複製中的處理順序功能。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;附件，提供这篇文章的DOC格式文档， 喜欢的朋友下载调式：&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://files.cnblogs.com/wghao/%E7%99%BC%E8%A1%8C%E9%A0%85%E5%B8%B6%E7%AF%A9%E9%81%B8%E7%9A%84%E5%90%88%E4%BD%B5%E8%A4%87%E8%A3%BD%E5%95%8F%E9%A1%8C%E4%B9%8B----%E8%A8%82%E9%96%B1%E8%80%85%E6%9B%B4%E6%96%B0%E5%B0%8E%E8%87%B4%E9%83%A8%E4%BB%BD%E6%95%B8%E6%93%9A%E4%B8%9F%E5%A4%B1.doc"&gt;/Files/wghao/發行項帶篩選的合併複製問題之----訂閱者更新導致部份數據丟失.doc&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wghao/aggbug/2212637.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wghao/archive/2011/10/14/2212637.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wghao/archive/2011/09/23/2187821.html</id><title type="text">通过批处理脚本启动/停止SQL Server服务</title><summary type="text">原因 先说写这篇文章的原因，这里通过两个简单的案例说明。 案例一：在一个Windows操作系统中，安装有10个SQL Server实例，每一个实例存在大约120个数据库。现在要同时启动10个实例的服务(SQL Server &amp;amp; SQL Server Agent &amp;amp; SQL Server FullText Search)。通过SQL Server Configuration Manager，需要一个实例，一个服务的一一启动。那是多么繁琐、笨拙的操作。 案例二：在案例一的场景，启动了全部的实例。不久，就发现程序运行缓慢，即使在Microsoft SQL Server Ma...</summary><published>2011-09-23T15:30:00Z</published><updated>2011-09-23T15:30:00Z</updated><author><name>OK_008</name><uri>http://www.cnblogs.com/wghao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wghao/archive/2011/09/23/2187821.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wghao/archive/2011/09/23/2187821.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;font size="5"&gt;原因&lt;/font&gt; &lt;/strong&gt;    &lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;    &lt;p&gt;先说写这篇文章的原因，这里通过两个简单的案例说明。&lt;/p&gt;  &lt;p&gt;案例一：在一个Windows操作系统中，安装有10个SQL Server实例，每一个实例存在大约120个数据库。现在要同时启动10个实例的服务(SQL Server &amp;amp; SQL Server Agent &amp;amp; SQL Server FullText Search)。通过SQL Server Configuration Manager，需要一个实例，一个服务的一一启动。那是多么繁琐、笨拙的操作。&lt;/p&gt;  &lt;p&gt;案例二：在案例一的场景，启动了全部的实例。不久，就发现程序运行缓慢，即使在Microsoft SQL Server Management Studio(MSMS)管理器查询数据，都有如蜗牛爬树。这时候，需要关闭一些暂时不用的SQL Server实例的服务。等需要的时候再启动。一些时候，可能会碰到经常要关闭这个实例的服务，启动另外实例的服务，以便解决Windows系统资源紧张的问题。&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="5"&gt;解决&lt;/font&gt; &lt;/strong&gt;    &lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt; &lt;strong&gt;&lt;/strong&gt;    &lt;p&gt;解决上面案例繁琐的操作问题，可以考虑通过Net命令，来启动或停止各个SQLServer服务，如：&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;net&amp;nbsp;Start&amp;nbsp;SQLAgent$SQL2005DE1&amp;nbsp;&amp;nbsp;&lt;span style="color: #008080;"&gt;/*&lt;/span&gt;&lt;span style="color: #008080;"&gt;启动实例SQL2005DE1中的SQLAgent服务&lt;/span&gt;&lt;span style="color: #008080;"&gt;*/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;net&amp;nbsp;Stop&amp;nbsp;SQLAgent$SQL2005DE1&amp;nbsp;&amp;nbsp;&lt;span style="color: #008080;"&gt;/*&lt;/span&gt;&lt;span style="color: #008080;"&gt;停止实例SQL2005DE1中的SQLAgent服务&lt;/span&gt;&lt;span style="color: #008080;"&gt;*/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;根据Net命令，可以通过编写一个批处理脚本实现，启动各个实例的各服务。Copy下面的代码，存储为后缀名为Bat的批处理文件&amp;#8220;Start&amp;amp;StopSQLServer.bat&amp;#8221;:&lt;/p&gt;&#xD;
&#xD;
&lt;div id="codeSnippetWrapper"&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('44e08fb3-6b5d-49d8-bbf1-e56c3e7981c7')"&gt;:a&lt;br /&gt;echo&amp;nbsp;本机的实例列表：&lt;br /&gt;echo&amp;nbsp;---------------------------&lt;br /&gt;echo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PC143\SQL2005DE1&lt;br /&gt;echo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PC143\SQL2005DE2&lt;br /&gt;echo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PC143\SQL2005DE3&lt;br /&gt;echo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PC143\SQL2005DE4&lt;br /&gt;echo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PC143\SQL2005DE5&lt;br /&gt;echo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PC143\SQL2005DE6&lt;br /&gt;echo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PC143\SQL2005DE7&lt;br /&gt;echo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PC143\SQL2005DE8&lt;br /&gt;echo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PC143\SQL2005DE9&lt;br /&gt;echo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PC143\SQL2005DE10&lt;br /&gt;echo&amp;nbsp;---------------------------&lt;br /&gt;echo&amp;nbsp;操作动作：&lt;br /&gt;echo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;启动服务&amp;nbsp;&lt;br /&gt;echo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;停止服务&lt;br /&gt;echo&amp;nbsp;---------------------------&lt;br /&gt;echo.&lt;br /&gt;Set/p&amp;nbsp;var2=请输入操作动作：[1/0]&lt;br /&gt;Set/p&amp;nbsp;var1=请输入实例编号：[1/2/3/4/5/6/7/8/9/10]&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==1&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==1&amp;nbsp;goto&amp;nbsp;S1&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==2&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==1&amp;nbsp;goto&amp;nbsp;S2&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==3&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==1&amp;nbsp;goto&amp;nbsp;S3&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==4&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==1&amp;nbsp;goto&amp;nbsp;S4&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==5&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==1&amp;nbsp;goto&amp;nbsp;S5&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==6&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==1&amp;nbsp;goto&amp;nbsp;S6&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==7&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==1&amp;nbsp;goto&amp;nbsp;S7&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==8&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==1&amp;nbsp;goto&amp;nbsp;S8&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==9&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==1&amp;nbsp;goto&amp;nbsp;S9&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==10&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==1&amp;nbsp;goto&amp;nbsp;S10&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==1&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==0&amp;nbsp;goto&amp;nbsp;T1&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==2&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==0&amp;nbsp;goto&amp;nbsp;T2&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==3&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==0&amp;nbsp;goto&amp;nbsp;T3&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==4&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==0&amp;nbsp;goto&amp;nbsp;T4&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==5&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==0&amp;nbsp;goto&amp;nbsp;T5&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==6&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==0&amp;nbsp;goto&amp;nbsp;T6&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==7&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==0&amp;nbsp;goto&amp;nbsp;T7&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==8&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==0&amp;nbsp;goto&amp;nbsp;T8&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==9&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==0&amp;nbsp;goto&amp;nbsp;T9&lt;br /&gt;if&amp;nbsp;%var1%&amp;nbsp;==10&amp;nbsp;if&amp;nbsp;%var2%&amp;nbsp;==0&amp;nbsp;goto&amp;nbsp;T10&lt;br /&gt;echo.&lt;br /&gt;cls&lt;br /&gt;goto&amp;nbsp;a:&lt;br /&gt;echo.&lt;br /&gt;:S1&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;SQLAgent$SQL2005DE1&amp;nbsp;/Y&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;msftesql$SQL2005DE1&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:S2&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;SQLAgent$SQL2005DE2&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;msftesql$SQL2005DE2&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:S3&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;SQLAgent$SQL2005DE3&amp;nbsp;/Y&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;msftesql$SQL2005DE3&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:S4&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;SQLAgent$SQL2005DE4&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;msftesql$SQL2005DE4&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:S5&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;SQLAgent$SQL2005DE5&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;msftesql$SQL2005DE5&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:S6&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;SQLAgent$SQL2005DE6&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;msftesql$SQL2005DE6&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:S7&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;SQLAgent$SQL2005DE7&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;msftesql$SQL2005DE7&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:S8&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;SQLAgent$SQL2005DE8&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;msftesql$SQL2005DE8&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:S9&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;SQLAgent$SQL2005DE9&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;msftesql$SQL2005DE9&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:S10&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;SQLAgent$SQL2005DE10&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Start&amp;nbsp;msftesql$SQL2005DE10&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:T1&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;MSSQL$SQL2005DE1&amp;nbsp;/Y&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;msftesql$SQL2005DE1&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:T2&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;MSSQL$SQL2005DE2&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;msftesql$SQL2005DE2&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:T3&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;MSSQL$SQL2005DE3&amp;nbsp;/Y&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;msftesql$SQL2005DE3&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:T4&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;MSSQL$SQL2005DE4&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;msftesql$SQL2005DE4&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;echo.&lt;br /&gt;:T5&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;MSSQL$SQL2005DE5&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;msftesql$SQL2005DE5&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;:T6&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;MSSQL$SQL2005DE6&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;msftesql$SQL2005DE6&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;:T7&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;MSSQL$SQL2005DE7&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;msftesql$SQL2005DE7&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;:T8&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;MSSQL$SQL2005DE8&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;msftesql$SQL2005DE8&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;:T9&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;MSSQL$SQL2005DE9&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;msftesql$SQL2005DE9&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;:T10&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;MSSQL$SQL2005DE10&amp;nbsp;/Y&amp;nbsp;&lt;br /&gt;net&amp;nbsp;Stop&amp;nbsp;msftesql$SQL2005DE10&amp;nbsp;/Y&lt;br /&gt;goto&amp;nbsp;EndApp&lt;br /&gt;:EndApp&lt;br /&gt;Set/p&amp;nbsp;var3=是否继续操作：[y/n]&lt;br /&gt;If&amp;nbsp;%var3%&amp;nbsp;==&amp;nbsp;y&amp;nbsp;goto&amp;nbsp;a:&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;这里演示了PC143上的10个SQL Server实例启动、停止的批处理脚本。下面来运行这个脚本，启动PC143上其中一个实例服务PC143\SQL2005DE4：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201109/201109232327077361.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201109/201109232327095800.png" border="0" height="383" width="340" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;关闭实例服务，类似启动实例服务，如：&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/wghao/201109/201109232327102637.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/wghao/201109/201109232327119440.png" border="0" height="360" width="347" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="5"&gt;小结&lt;/font&gt; &lt;/strong&gt;&#xD;
&#xD;
  &lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&#xD;
&#xD;
&#xD;
&lt;p&gt;上面的批处理脚本，虽然代码看似很长，其实格式很简单，熟悉Windows批处理脚本的朋友，一定能简化它。启动或停止实例的服务，还可以使用别的后台脚本语言实现，如Windows PowerShell，或Python。无论使用哪一种，最终目的是要解决文章开头的两个案例问题。写批处理脚本，能让我们少敲次键盘，少按几次鼠标。通过简单的脚本代码实现，代替一些繁琐笨拙的操作，久而久之，会发觉它们能为我们节省了不少的时间，提高了工作效率。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wghao/aggbug/2187821.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wghao/archive/2011/09/23/2187821.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
