dtc存储过程
事务里使用连接服务器吗?还是SQL中两台服务器间使用连接服务器? 给你例子,不一定正确仅供参考:
1:执行另一服务器上的存储过程
exec opendatasource(
sqloledb,
data source=远程ip;user id=sa;password=密码
).库名.dbo.存储过程名
2:将资料插入另一服务器上的表中
select * into 本地库名..表名 from opendatasource(
sqloledb,
data source=远程ip;user id=sa;password=密码
).库名.dbo.表名
insert 本地库名..表名 select * from opendatasource(
sqloledb,
data source=远程ip;user id=sa;password=密码
).库名.dbo.表名
或使用联结服务器:
exec sp_addlinkedserver 别名,,msdasql,null,null,driver={sql server};server=远程名;uid=用户;pwd=密码;
exec sp_addlinkedsrvlogin @rmtsrvname=别名,@useself=false,@locallogin=sa,@rmtuser=sa,@rmtpassword=密码
go
(请注意上面的两步要同时运行)
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go
3:如果在事务里使用连接服务器要加上
分布式事务:
两边启动dtc
set xact_abort on
set ansi_null_dflt_on on
set ansi_warnings on
begin distributed transaction
select * from opendatasource(msdasql,driver={sql server};server=ip;uid=sa;pwd=密码;).pubs.dbo.jobs
commit tran
愿你成功,祝福你!
⑵ 怎么启动分布式事务处理协调器(DTC)
若要完全启用MSDTC,请使用以下步骤:
1.在控制面板中,打开“管理工具”,然后打开“计算机管理”。
2.在“计算机管理”的左窗格中,展开“服务和应用程序”,再单击“服务”。
3.在“计算机管理”的右窗格中,右键单击“(分布式事务协调器)”并选择“属性”。
4.在“(分布式事务协调器)”窗口中,单击“常规”选项卡,再单击“停止”停止该服务。
5.在“(分布式事务协调器)”窗口中,单击“登录”选项卡,并将登录帐户设置为NTAUTHORITYNetworkService。
6.单击“应用”和“确定”以关闭分布式事务协调器的窗口。关闭“计算机管理”。关闭“管理工具”。

⑶ 我的电脑室win7 64位的。pc技术上机考试模拟软件在运行cmd时命令总无法执行
需求:调用网服务器(SMS SQL Server)上的短信发送接口(是一个存储过程)来发送(Stage SQL Server)上的数据内容到本Team 成员的手机上。这两台服务器,本地在拨VPN后可以访问。要求以本地的SQL Server做跳转,同时调用这两台服务器的数据接口。
实现方法与步骤(在本地的SQL Server环境):
1、创建一个SQL Server Job
2、创建一个调用 操作系统(CmdExec)命令的Job步骤,调用命令以完成自动拨VPN的功能。
代码如:
rasdial idc_name user_name user_password
3、创建链接服务器SMS SQL Server和Stage SQL Server。
4、创建一个读取Stage SQL Server上需要发送的数据内容,并调度SMS SQL Server的短信发送接口,完成短信发送的Job步骤(T-SQL)。
5、创建一个CmdExec的Job步骤,调用命令完成自动断开VPN的功能。
代码如:
rasdial idc_name /disconnect
6、设置这三个步骤的先后顺序(2,4,5)。并设置调度频率为每天早上9点。
该过程中可能涉及到两个问题,如下:
1、分别调用两个服务器上的存储过程,可能需要打开分布式事务。考试#大提示简要步骤如下:
运行dcomcnfg命令,组件服务,计算机,我的电脑,属性,MSDTC,安全配置
选中“网络DTC访问”
在客户端管理中选中“允许远程客户端”“允许远程管理”
在事务管理通讯中选“允许入站”“允许出站”“不要求进行验证”
保证DTC登陆账户为:NT AuthorityNetworkService
2、执行CmdExec步骤的默认帐号是SQL Server代理的启动帐号,一般是 NT AUTHORITYNetworkService,该帐号不是sysadmin组,
不具备执行该命令的权限。所以可能需要修改代理的启动帐号为有权限的帐号。
总结:本文总结问题的关键在于把握分布式事务的正确开启以及SQL Server代理中,通常执行Job的帐号AUTHORITYNetworkService并不属于系统管理员组,代理执行一些任务失败时,注意观察所执行操作需要的权限,例如本文的执行CmdExec命令,就需要sysadmin或者操作系统管理员的权限。 来源:考试大-计算机三级考试
⑷ 如何设置,能使本机某个文件夹的文件和服务器共享文件夹里的对应的文件在每天11点做一次同步
网站文件的同步
在这里用到的主要工具就是ftp,网站文件同步分
两种情况,一种是本地到远程,一种是远程到远程
(FXP)!第一种不用说了,第二种远程到远程即FXP
,支持它的软件也很多,但是真正适合多网站同步
镜像的却不多!
下面我介绍几个我认为不错的软件!
1.首先我要推荐的是国产的FTP软件”网络传神
”,功能非常强大,特别是在网站的同步镜像方面
,可惜的是,这款非常经典的软件已经不再更新了
,最后更新时间是2003年3月,最后一个版本是3.1
2!虽然如此还是非常好用的!下面是一段官方的
简介:
网络传神完全吸收了Cuteftp和UpdataNow的全部
功能,并且增加了其他软件没有的多项功能:支
持网站互传;支持网站同步(UPDATANOW);支持
后台上传(多线程上传多个文件);可同时打开多
个站点;多站点计划上传功能,支持镜像站点;
支持宏操作支持计划操作;支持文件高级比较上
传;支持目录隐藏过滤(为用ForntPage作主页
的朋友带来福音);服务器自动识别功能;资源
管理器浏览方式;可以自定义命令;支持RFC959
标准具有更好的稳定性;完备的信息返回机制及
错误监控机制完整的中文帮助。
2.第二款是由ReGet同一开发公司制作的专用于
网站同步的软件”WebSynchronizer”,用这款软
件,你才会体验到网站同步的方便快捷,简单容易
.最新版本是1.3.62,网上能找到XX的最后版本是
1.1版!下面是一段简介:
档案同步化工具-WebSynchronizer,由知名续传
软件ReGet之软件出版公司所推出,是网站同步
化、档案镜像、档案备份的绝佳工具,可以执行
下列主要工作:1)本机资料夹及远程资料夹的同
步化;2)两台远程计算机中的资料夹同步化;3)
两个本机资料之同步化。
3.其他还有一些软件如同步快梭(AutoSyncFTP),
也能实现简单的网站同步,不过,这款软件非常不
稳定,而且2001年就已经停止开发.所以,不用考
虑了!还有上次有朋友提到的SiteMirro,由于网
上找不到可以用的版本,所以没有办法测试!
网络传神网站同步镜像使用傻瓜指南
上次在网络技术版已经发过一个简单的使用方法
介绍,如果嫌我罗嗦(o(>_<)o),大家可以参考那
篇文章:
http://bbs.et8.net/bbs/showthread.php?t=65
0129
第一次运行网络传神的时候,它会让你选择”完
全模式”和”启动模式”,要使用网站同步必须
选择”完全模式”.
进入主界面:你会发现这个软件非常像FlashGet,
要使用网站同步功能,点击软件左下角的”FTP客
户端”.
现在你要做的就是添加你的镜像母站和需要镜像
的网站:文件->站点管理,在里面添加你需要同步
的几个的FTP服务器,下面我将介绍具体设置(主
要是镜像母站的设置)
母站设置最重要的地方就是”比较目录(网站同
步)”:
1.拖动传送
就是手动拖动传送时候的传送方式,非拖动方式
不受影响,因为母站的更新基本上是从本地目录
进行的,所以建议这里选择第二项”只上传不同
的文件”,镜像站点这里可以忽略
2.磁盘比较设置
这个功能非常有用,可以通过文件长度和文件日
期进行文件差异对比.
你还可以设置本地目录过滤和服务器目录过滤,
非常灵活!
好了,添加好母站和镜像站之后,我们来设置同步
:
如果是添加镜像站,则会跳出下面的母站选择窗
口:
设置好多个镜像站点之后,返回主界面就可以进
行网站同步了:
注意事项:
一般不要改动镜像站点前面的“对钩”标志,因
为镜像站点同步的原理是“根据主站点的同步信
息更新镜像站点”,如果景象站点没有更新那么
必须将该镜像站点单独同步。
注意一般应该“选项窗口”-〉“FTP客户端”-
〉“计划”中的“最大连接个数”和“最大线程
个数”一般不要改动保持为“1”。
如果同步时某个站点出错同步没有完全完成只需
按“计划”窗口中的按钮单独执行某个站点的传
送即可。
再介绍一下网站镜像同步中必要的功能,定时同
步,这样你就只要做好母站的更新,其他的让网络
传神帮你完成:
点击设置:
进入网络传神的选项设置窗口,选中FTP客户端中
的定时同步
定时下载:在指定的时段内下载文件。
定时上传:在指定的时段内用网站同步的方法进
行上传。
开始时间:如果要使用定时方式必须设置此项,
在设置的时间中会自动开始所有设置为计划的站
点。
停止时间:如果设置此项则当系统时间大于停止
时间时自动停止所有设置为计划的站点。
注意:定时上传种没有“停止时间”选项,网站
同步完成后会自动停止,同时网站同步同一时间
只能运行一次。
网络传神还有很多为便于同步镜像设置的功能,
大家实际使用中去体会吧!
WebSynchronizer网站同步镜像使用傻瓜指南
WebSynchronizer功能非常强大,不单单是网站同
步,还可以进行本地目录同步,本地到远程同步,
功能方面远胜过传神,不过,国内好像没有汉化版
,对于一些对英文感冒的朋友用起来会不太舒服,
希望CCF里的汉化高手能将他中文化!
开始运行程序,老外的软件就是智能,一打开这个
软件就会有一个同步向导跳出来!
在这里,你也看出来了吧,这个软件只支持两个目
录间的同步.不过,我们可以创建多个项目来解决
这个问题!具体我在后面介绍!这里,我们来看看
如何建立两个远程目录的同步!
选择第二项,进入下一个选择框:
网站同步当然是选择第一项了!再进入下一步,要
你选择同步的第一个服务器,建议在这里servers
list,先编辑好需要同步的几个FTP
同步方式设置说明:
第一项的意思是:上传下载所有改变的文件
第二项的意思是:不改变文件夹内容,只下载新的
文件
点击下一步进行第二个服务器设置,方法和第一
个一样!
设置完成后,你还可以修改任务名称!
我觉得这点就是这个软件非常优秀的地方,以任
务的方式进行管理.非常方便!
OK,现在我们就可以看到他的主界面了!
还有一点要提,他的计划任务更能也很强大,在这
里我就不再多说了!用过才知道他的强大!
有朋友会说,我要进行两个以上的网站同步怎么
办?
很简单,再多建几个任务就可以了,要镜像多少网
站都没有问题!
这个软件的网站同步镜像可以非常灵活,比如可
以本地-远程,然后再远程-远程!或者本地-远程1
,本地-远程2,远程1-远程2,任何情形下的同步都
可以完成!
数据库同步操作指南
说完了文件同步,我们再来探讨一下数据库同步!
这里我主要教大家两种最常用的数据库的同步方
法!
MySQL
MySQL数据同步主要有三种方式:
1.利用MySQL自身的数据库同步功能
2.利用MySQL数据库的特性(数据库存在固顶目录
,并且以文件形式存储),进行数据库目录同步以
达到数据同步目的
3.利用专用的MySQL数据库同步软件
1.利用MySQL自身的数据库同步功能(下面参考自
网上的文章,写的非常详细了)
MySQL从3.23.15版本以后提供数据库复制功能。
利用该功能可以实现两个数据库同步,主从模式
,互相备份模式的功能.
数据库同步复制功能的设置都在mysql的设置文
件中体现。mysql的配置文件(一般是my.cnf)
,在unix环境下在/etc/mysql/my.cnf或者在mys
ql用户的home目录下的my.cnf。
windows环境中,如果c:根目录下有my.cnf文件
则取该配置文件。当运行mysql的winmysqladmin
.exe工具时候,该工具会把c:根目录下的my.cnf
命名为mycnf.bak。并在winnt目录下创建my.ini
。mysql服务器启动时候会读该配置文件。所以
可以把my.cnf中的内容拷贝到my.ini文件中,用
my.ini文件作为mysql服务器的配置文件。
设置方法:
设置范例环境:
操作系统:window2000professional
mysql:4.0.4-beta-max-nt-log
Aip:10.10.10.22
Bip:10.10.10.53
A:设置
1.增加一个用户最为同步的用户帐号:
GRANTFILEON*.*TObackup@'10.10.10.53'ID
ENTIFIEDBY‘1234’
2.增加一个数据库作为同步数据库:
createdatabasebackup
B:设置
1.增加一个用户最为同步的用户帐号:
GRANTFILEON*.*TObackup@'10.10.10.22'ID
ENTIFIEDBY‘1234’
2.增加一个数据库作为同步数据库:
createdatabasebackup
主从模式:A->B
A为master
修改Amysql的my.ini文件。在mysqld配置项
中加入下面配置:
server-id=1
log-bin
#设置需要记录log可以设置log-bin=c:mysq
lbakmysqllog设置日志文件的目录,
#其中mysqllog是日志文件的名称,mysql将
建立不同扩展名,文件名为mysqllog的几个日志
文件。
binlog-do-db=backup#指定需要日志的数据
库
重起数据库服务。
用showmasterstatus命令看日志情况。
B为slave
修改Bmysql的my.ini文件。在mysqld配置项
中加入下面配置:
server-id=2
master-host=10.10.10.22
master-user=backup#同步用户帐号
master-password=1234
master-port=3306
master-connect-retry=60预设重试间隔60
秒
replicate-do-db=backup告诉slave只做bac
kup数据库的更新
重起数据库
用showslavestatus看同步配置情况。
注意:由于设置了slave的配置信息,mysql
在数据库目录下生成master.info
所以如有要修改相关slave的配置要先删除
该文件。否则修改的配置不能生效。
双机互备模式。
如果在A加入slave设置,在B加入master设
置,则可以做B->A的同步。
在A的配置文件中mysqld配置项加入以下设
置:
master-host=10.10.10.53
master-user=backup
master-password=1234
replicate-do-db=backup
master-connect-retry=10
在B的配置文件中mysqld配置项加入以下设
置:
log-bin=c:mysqllogmysqllog
binlog-do-db=backup
注意:当有错误产生时*.err日志文件。同
步的线程退出,当纠正错误后要让同步机制进行
工作,运行slavestart
重起AB机器,则可以实现双向的热备。
测试:
向B批量插入大数据量表AA(1872000)条
A数据库每秒钟可以更新2500条数据。
2.数据库目录同步,方法和文件同步一样,设置好
需要同步的两个数据库目录就可以了!
缺点很明显,数据同步只能单向进行,可以作为备
份方案
3.用专用的MySQL同步软件进行同步
这方面的软件有SQLBalance和MyReplicator,优
点是方便直观,还有很多争强功能!
缺点和2一样,只能单项同步!
当然你也可以修改镜像网站的程序为提交数据到
母数据库,读取则在当前镜像下的数据,不过,修
改起来麻烦!普通用户修改也非常难!呵呵,大家
了解一下就可以!给大家一个思路!有能力的朋友
可以试试阿!
4.关于MySQL论坛的数据同步
由于数据来源的不可控制(不好表达),论坛数据
是实时的,而且还要考虑来自镜像论坛的数据,如
何实现镜像论坛与母论坛数据同步呢?
用1中介绍的MySQL自带的数据库同步功能互相备
份模式就可以实现的!
不过,具体的应用我没有测试!稳定性不敢保证!
有能力的朋友推荐用下面这种思路来同步,相对
来说减少点效率,但能减少发生的错误!
比如镜像论坛数据同步:
1.母论坛和镜像论坛的数据全写在母论坛数据库
里,主从模式,读取只在本地读取,这个需要修改
程序!
2.每次写数据,都同时提交到两个数据库中,安全
,但是效率很差,也得修改程序!
MSSQL
MSSQL数据同步利用数据库复制技术实现数据同
步更新(来自网络,也是非常完美的教程)
复制的概念
复制是将一组数据从一个数据源拷贝到多个数据
源的技术,是将一份数据发布到多个存储站点上
的有效方式。使用复制技术,用户可以将一份数
据发布到多台服务器上,从而使不同的服务器用
户都可以在权限的许可的范围内共享这份数据。
复制技术可以确保分布在不同地点的数据自动同
步更新,从而保证数据的一致性。
SQL复制的基本元素包括
出版服务器、订阅服务器、分发服务器、出版物
、文章
SQL复制的工作原理
SQLSERVER主要采用出版物、订阅的方式来处理
复制。源数据所在的服务器是出版服务器,负责
发表数据。出版服务器把要发表的数据的所有改
变情况的拷贝复制到分发服务器,分发服务器包
含有一个分发数据库,可接收数据的所有改变,
并保存这些改变,再把这些改变分发给订阅服务
器
SQLSERVER复制技术类型
SQLSERVER提供了三种复制技术,分别是:
1、快照复制(呆会我们就使用这个)
2、事务复制
3、合并复制
只要把上面这些概念弄清楚了那么对复制也就有
了一定的理解。接下来我们就一步一步来实现复
制的步骤。
第一先来配置出版服务器
(1)选中指定[服务器]节点
(2)从[工具]下拉菜单的[复制]子菜单中选择[发
布、订阅服务器和分发]命令
(3)系统弹出一个对话框点[下一步]然后看着提
示一直操作到完成。
(4)当完成了出版服务器的设置以后系统会为该
服务器的树形结构中添加一个复制监视器。同时
也生成一个分发数据库(distribution)
第二创建出版物
(1)选中指定的服务器
(2)从[工具]菜单的[复制]子菜单中选择[创建和
管理发布]命令。此时系统会弹出一个对话框
(3)选择要创建出版物的数据库,然后单击[创建
发布]
(4)在[创建发布向导]的提示对话框中单击[下一
步]系统就会弹出一个对话框。对话框上的内容
是复制的三个类型。我们现在选第一个也就是默
认的快照发布(其他两个大家可以去看看帮助)
(5)单击[下一步]系统要求指定可以订阅该发布
的数据库服务器类型,SQLSERVER允许在不同的
数据库如ORACLE或ACCESS之间进行数据复制。但
是在这里我们选择运行"SQLSERVER2000"的数据
库服务器
(6)单击[下一步]系统就弹出一个定义文章的对
话框也就是选择要出版的表
(7)然后[下一步]直到操作完成。当完成出版物
的创建后创建出版物的数据库也就变成了一个共
享数据库。
第三设计订阅
(1)选中指定的订阅服务器
(2)从[工具]下拉菜单中选择[复制]子菜单的[请
求订阅]
(3)按照单击[下一步]操作直到系统会提示检查S
QLSERVER代理服务的运行状态,执行复制操作的
前提条件是SQLSERVER代理服务必须已经启动。
(4)单击[完成]。完成订阅操作。
完成上面的步骤其实复制也就是成功了。但是如
何来知道复制是否成功了呢?这里可以通过这种
方法来快速看是否成功。展开出版服务器下面的
复制——发布内容——右键发布内容——属性—
—击活——状态然后点立即运行代理程序接着点
代理程序属性击活调度把调度设置为每一天发生
,每一分钟,在0:00:00和23:59:59之间。
接下来就是判断复制是否成功了打开C:/Program
Files/MicrosoftSQLServer/MSSQL/REPLDATA/un
c/XIAOWANGZI_database_database下面看是不是
有一些以时间做为文件名的文件夹差不多一分中
就产生一个。要是你还不信的话就打开你的数据
库看在订阅的服务器的指定订阅数据库下看是不
是看到了你刚才所发布的表—
一个手工同步的方案
--定时同步服务器上的数据
--例子:
--测试环境,SQLServer2000,远程服务器名:xz,
用户名为:sa,无密码,测试数据库:test
--服务器上的表(查询分析器连接到服务器上创
建)
createtable[user](idintprimarykey,numberva
rchar(4),namevarchar(10))
go
--以下在局域网(本机操作)
--本机的表,state说明:null表示新增记录,1表
示修改过的记录,0表示无变化的记录
ifexists(select*fromdbo.sysobjectswhereid=
object_id(N'[user]')andOBJECTPROPERTY(id,N
'IsUserTable')=1)
droptable[user]
GO
createtable[user](idintidentity(1,1),numbe
rvarchar(4),namevarchar(10),statebit)
go
--创建触发器,维护state字段的值
createtriggert_stateon[user]
afterupdate
as
update[user]setstate=1
from[user]ajoininsertedbona.id=b.id
wherea.stateisnotnull
go
--为了方便同步处理,创建链接服务器到要同步
的服务器
--这里的远程服务器名为:xz,用户名为:sa,无密
码
ifexists(select1frommaster..sysserverswher
esrvname='srv_lnk')
execsp_dropserver'srv_lnk','droplogins'
go
execsp_addlinkedserver'srv_lnk','','SQLOLE
DB','xz'
execsp_addlinkedsrvlogin'srv_lnk','false',
null,'sa'
go
--创建同步处理的存储过程
ifexists(select*fromdbo.sysobjectswhereid=
object_id(N'[dbo].[p_synchro]')andOBJECTPR
OPERTY(id,N'IsProcere')=1)
dropprocere[dbo].[p_synchro]
GO
createprocp_synchro
as
--setXACT_ABORTon
--启动远程服务器的MSDTC服务
--execmaster..xp_cmdshell'isql/S"xz"/U"sa"
/P""/q"execmaster..xp_cmdshell''netstartms
dtc'',no_output"',no_output
--启动本机的MSDTC服务
--execmaster..xp_cmdshell'netstartmsdtc',n
o_output
--进行分布事务处理,如果表用标识列做主键,用
下面的方法
--BEGINDISTRIBUTEDTRANSACTION
--同步删除的数据
deletefromsrv_lnk.test.dbo.[user]
whereidnotin(selectidfrom[user])
--同步新增的数据
insertintosrv_lnk.test.dbo.[user]
selectid,number,namefrom[user]wherestateis
null
--同步修改的数据
updatesrv_lnk.test.dbo.[user]set
number=b.number,name=b.name
fromsrv_lnk.test.dbo.[user]a
join[user]bona.id=b.id
whereb.state=1
--同步后更新本机的标志
update[user]setstate=0whereisnull(state,1)
=1
--COMMITTRAN
go
--创建作业,定时执行数据同步的存储过程
ifexists(SELECT1frommsdb..sysjobswherename
='数据处理')
EXECUTEmsdb.dbo.sp_delete_job@job_name='数
据处理'
execmsdb..sp_add_job@job_name='数据处理'
--创建作业步骤
declare@sqlvarchar(800),@dbnamevarchar(250
)
select@sql='execp_synchro'--数据处理的命令
,@dbname=db_name()--执行数据处理的数据库名
execmsdb..sp_add_jobstep@job_name='数据处
理',
@step_name='数据同步',
@subsystem='TSQL',
@database_name=@dbname,
@command=@sql,
@retry_attempts=5,--重试次数
@retry_interval=5--重试间隔
--创建调度
EXECmsdb..sp_add_jobschele@job_name='数
据处理',
@name='时间安排',
@freq_type=4,--每天
@freq_interval=1,--每天执行一次
@active_start_time=00000--0点执行
go
⑸ 在VB中,怎样对SQL进行事务处理
事务处理是在数据处理时经常遇到的问题,经常用到的方法有以下3种总结整理如下:
方法1:直接写入到sql 中
在存储过程中使用 BEGIN TRANS, COMMIT TRANS, ROLLBACK TRANS 实现
begin trans
declare @orderDetailsError int,@procuntError int
delete from [order details] where proctid=42
select @orderDetailsError =@@error
delete from procts where proctid=42
select @procuntError=@@error
if(@orderDetailsError =0 and @procuntError=0)
COMMIT TRANS
else
ROLLBACK TRANS
优点:
所有事务逻辑包含在一个单独的调用中
拥有运行一个事务的最佳性能
独立于应用程序
限制:
事务上下文仅存在于数据库调用中
数据库代码与数据库系统有关
方法2 :使用ADO.NET 实现
使用ADO.NET 实现,使用这种方式的优点是可以在中间层来管理事务,当然你也可以选择在数据层来实现。
SqlConnection 和OleDbConnection 对象有一个 BeginTransaction 方法,它可以返回 SqlTransaction
或者OleDbTransaction 对象。而且这个对象有 Commit 和 Rollback 方法来管理事务
SqlConnection sqlConnection = new SqlConnection("workstation id=WEIXIAOPING;packet size=4096;user id=sa;initial catalog=Northwind;persist security info=False");
sqlConnection.Open();
SqlTransaction myTrans = sqlConnection.BeginTransaction();
SqlCommand sqlInsertCommand = new SqlCommand();
sqlInsertCommand.Connection = sqlConnection
sqlInsertCommand.Transaction=myTrans;
try{
sqlInsertCommand.CommandText="insert into tbTree(Context,ParentID) values('北京',1)";
sqlInsertCommand.ExecuteNonQuery();
sqlInsertCommand.CommandText="insert into tbTree(Context,ParentID) values('上海',1)";
sqlInsertCommand.ExecuteNonQuery();
myTrans.Commit();
}catch(Exception ex)
{
myTrans.Rollback();
}
finally
{
sqlConnection.Close();
}
优点:
简单性
和数据据事务差不多的快
独立于数据库,不同数据库的专有代码被隐藏了
缺点:
事务不能跨越多个数据库连接
事务执行在数据库连接层上,所以需要在事务过程中维护一个数据库连接
ADO.NET分布事务也可以跨越多个数据库,但是其中一个SQL SERVER 数据库的话,通过用SQL SERVER连接服务器连接到别的数据库,但是如果是在DB2和Orcal之间就不可以。
以上两种事务是经常用到的事务处理方法。
方法3 COM+事务(分布式事务)
.NET Framework 依靠 MTS/COM+ 服务来支持自动事务。COM+ 使用 Microsoft Distributed Transaction Coordinator (DTC) 作为事务管理器和事务协调器在分布式环境中运行事务。
这样可使 .NET 应用程序运行跨多个资源结合不同操作(例如,将定单插入 SQL Server 数据库、将消息写入 Microsoft 消息队列 (MSMQ) 队列、以及从 Oracle 数据库检索数据)
的事务。
COM+事务处理的类必须继承System.EnterpriseServices.ServicedComponent,其实web service就是继承System.EnterpriseServices.ServicedComponent,所以web service也支持
COM+事务。
定义一个COM+事务处理的类
[Transaction(TransactionOption.Required)]
public class DataAccess:System.EnterpriseServices.ServicedComponent
{
}
TransactionOption枚举类型支持5个COM+值(Disabled,NotSupported,Required,RequiresNew,Supported)
Disabled 忽略当前上下文中的任何事务。
NotSupported 使用非受控事务在上下文中创建组件。
Required 如果事务存在则共享事务,并且如有必要则创建新事务。
RequiresNew 使用新事务创建组件,而与当前上下文的状态无关。
Supported 如果事务存在,则共享该事务。
一般来说COM+中的组件需要Required 或Supported。当组件用于记录或查帐时RequiresNew 很有用,因为组件应该与活动中其他事务处理的提交或回滚隔离开来。
派生类可以重载基类的任意属性。如DataAccess选用Required,派生类仍然可以重载并指定RequiresNew或其他值。
COM+事务有手动处理和自动处理,自动处理就是在所需要自动处理的方法前加上[AutoComplete],根据方法的正常或抛出异常决定提交或回滚。
手动处理就是调用ContextUtil类中EnableCommit,SetComplete,SetAbort方法。
public string testTransaction()
{
try
{
ContextUtil.EnableCommit();
InsertARecord1();
InsertARecord2();
ContextUtil.SetComplete();
return "succeed!";
}
catch(Exception ex)
{
ContextUtil.SetAbort();
return "failed!";
}
}
public void InsertARecord1()
{
string strconn="workstation id=WEIXIAOPING;packet size=4096;user id=sa;initial catalog=Northwind;persist security info=False";
SqlConnection conn=new SqlConnection(strconn);
conn.Open();
SqlCommand command=new SqlCommand("insert into tbTree(Context,ParentID) values('北京',1)",conn);
command.ExecuteNonQuery();
conn.Close();
}
public void InsertARecord2()
{
string strconn="workstation id=WEIXIAOPING;packet size=4096;user id=sa;initial catalog=Northwind;persist security info=False";
SqlConnection conn=new SqlConnection(strconn);
conn.Open();
SqlCommand command=new SqlCommand("insert into tbTree(Context,ParentID) values('上海',1)",conn);
command.ExecuteNonQuery();
conn.Close();
}
在需要事务跨 MSMQ 和其他可识别事务的资源(例如,SQL Server 数据库)运行的系统中,只能使用 DTC 或 COM+ 事务,除此之外没有其他选择。DTC 协调参与分布式事务的所有资源管理器, 也管理与事务相关的操作。
这种做法的缺点是,由于存在 DTC 和 COM 互操作性开销,导致性能降低。
COM+事务处理的类必须强命名。
⑹ ECU刷写,两组CAN线,一组诊断,一组刷写,怎么跳线
ECU上电后,先进入bootLoader确定application程序是否有问题,如果没有问题则跳转至application,如果application出现问题,程序会停留在bootloader中,等待刷写命令。软件刷写主要分为三部分:
1、pre-programming step
2、programming step
3、post-programming step
pre-programming step
从名字可以看出,该步骤主要是下载程序前的一些操作,包括唤醒ECU、读取特定的DID、通信管理等,详细的操作见图1。
图1 pre-programming step
其中:
1、唤醒ECU,唤醒的方法和策略由汽车制造商制定;
2、为了关闭DTC存储和运行0x28服务关闭相关的通信,需运行0x10服务跳转至extendedDiagnosticSession,
3、进入extendedDiagnosticSession后,汽车制造商可以进一步进行特定数据链路的初始化;
4、运行0x31服务对刷写条件进行检查,例如低压电是否在正常范围内;
5、为了防止刷写过程中出现异常误触发DTC存储,运行0x85服务关闭DTC的存储;
6、该步骤提供给汽车制造商一个接口,可以通过0x31服务启动或关闭ECU的故障安全响应(failsafe reaction);
7、为了提高刷写速度,降低刷写程序时总线负载率,通过运行0x28服务关闭无关报文,比如应用报文和网络管理报文;
8、在关闭部分通信之后,通过0x22服务读取被刷ECU的状态(应用软件和数据)、软件指纹信息等;
9、为了减少刷写的时间,可以通过0x87服务提高CAN总线的波特率。
programming step
该步骤用于将软件或者数据下载到被刷ECU中,主要包括进入特定的安全等级、写入指纹信息、下载软件和数据等,如图2所示。
图2 programming step
其中:
1、运行0x10服务进入programmingSession;
2、运行0x27服务进入特定的安全等级;
3、运行0x2E服务将指纹信息写入ECU;
4、运行0x34、0x36、0x37服务将永久存储区写入默认值;
5、运行0x31服务检查步骤4是否成功,另外一种方法是通过0x37的响应确定是否成功;
6、运行0x31服务对特定的Flash进行擦除;
7、分别运行0x34、0x36、0x37服务将Flash driver下载至内存中;
8、运行0x31服务检查Flash driver下载是否成功;
9、分别运行0x34、0x36、0x37服务将软件和数据下载至ECU的flash中;
10、运行0x31服务检查步骤9是否下载成功;
11、运行0x31服务验证程序是否能正常运行,例如checksum、标志位等;
12、在下载完软件和数据后,汽车制造产商需要一些特定的操作,比如写入VIN码等。
post-programming step
该步骤主要通过0x11服务对ECU进行复位或者通过0x10服务将session切换至defaultSession,如图3所示,如果在pre-programming step中调整了波特率,须通过特定的操作将波特率调整至正常值。通常操作是运行0x11服务使ECU复位,回到正常状态。
图3 post-programming step
该刷写流程是14229标准中提到的,不同的OEM有不同的标准,但是主体的步骤与14229应该还是相同的。
⑺ 如何在SQL Server存储过程中执行DTS包
数据转换服务(DTS)在数据库管理和开发的多种领域都有会涉及DTS:
数据仓库-将数据从原始的处理系统和表格中提取出来以供报表使用
建立OLAP
将大量数据从文本文件或其它非数据库格式的文件中拷贝到数据库
生成Microsoft Office文档报表
使用 Distributed Transaction Coordinator (DTC)实现多数据库操作
在客户的桌面程序或网站上,经常需要允许用户按需执行DTS包。在这种情况下,在部署DTS包时,你应该决定将DTS包安置在何处,以及通过何种手段调用它。
⑻ sql server 存储过程
在执行存储过程时,我们常遇到执行超时的情况。如果是因为要处理的数据过多,修改流程复杂等原因的话,如以用以下方法解决:在存储过程的处理工作中加上事务管理:SET TRANSACTION ISOLATION LEVEL REPEATABLE READ --->要这行
BEGIN TRAN /* 这里是程序处理代码段*/commit transaction
QuitWithRollback:
IF (@@TRANCOUNT > 0)
BEGIN
ROLLBACK TRANSACTION
END 以下是事务相关的知识:BEGIN TRANSACTION--开始事务DECLARE @errorSun INT --定义错误计数器SET @errorSun=0 --没错为0UPDATE a SET id=232 WHERE a=1 --事务操作SQL语句SET @errorSun=@errorSun+@@ERROR --累计是否有错UPDATE aa SET id=2 WHERE a=1 --事务操作SQL语句SET @errorSun=@errorSun+@@ERROR --累计是否有错IF @errorSun<>0 BEGIN PRINT '有错误,回滚'ROLLBACK TRANSACTION--事务回滚语句END ELSE BEGIN PRINT '成功,提交'COMMIT TRANSACTION--事务提交语句END1.什么是事务:事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时事务是做为最小的控制单元来使用的。他包含的所有数据库操作命令作为一个整体一起向系提交或撤消,这一组数据库操作命令要么都执行,要么都不执行。2.事务的语句开始事物:BEGIN TRANSACTION 提交事物:COMMIT TRANSACTION 回滚事务:ROLLBACK TRANSACTION3.事务的4个属性①原子性(Atomicity):事务中的所有元素作为一个整体提交或回滚,事务的个元素是不可分的,事务是一个完整操作。②一致性(Consistemcy):事物完成时,数据必须是一致的,也就是说,和事物开始之前,数据存储中的数据处于一致状态。保证数据的无损。③隔离性(Isolation):对数据进行修改的多个事务是彼此隔离的。这表明事务必须是独立的,不应该以任何方式以来于或影响其他事务。④持久性(Durability):事务完成之后,它对于系统的影响是永久的,该修改即使出现系统故障也将一直保留,真实的修改了数据库4.事务的保存点 SAVE TRANSACTION 保存点名称 --自定义保存点的名称和位置 ROLLBACK TRANSACTION 保存点名称 --回滚到自定义的保存点 二事例 所谓事务是指一组逻辑操作单元,它使数据从一种状态变换到另一种状态。包括四个特性:1、原子性 就是事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,要么完全回滚,全部不保留2、一致性 事务完成或者撤销后,都应该处于一致的状态3、隔离性 多个事务同时进行,它们之间应该互不干扰.应该防止一个事务处理其他事务也要修改的数据时, 不合理的存取和不完整的读取数据4、持久性 事务提交以后,所做的工作就被永久的保存下来 示例:创建一个存储过程,向两个表中同时插入数据Create proc RegisterUser(@usrName varchar(30),@usrPasswd varchar(30),@age int,@sex varchar(10),@PhoneNum varchar(20),@Address varchar(50) )as beginbegin traninsert into userinfo(userName,userPasswd)values(@usrName,@usrPasswd)if @@error<>0begin rollback tranreturn -1endinsert into userdoc(userName,age,sex,PhoneNumber,Address)values(@Usrname,@age,@sex,@PhoneNum,@Address)if @@error<>0begin rollback tranreturn -1endcommit tranreturn 0end事务的分类按事务的启动与执行方式,可以将事务分为3类:显示事务 也称之为用户定义或用户指定的事务,即可以显式地定义启动和结束的事务。分布式事务属于显示事务自动提交事务默认事务管理模式。如果一个语句成功地完成,则提交该语句;如果遇到错误,则回滚该语句。隐性事务当连接以此模式进行操作时,sql将在提交或回滚当前事务后自动启动新事务。无须描述事务的开始,只需提交或回滚每个事务。它生成连续的事务链。一、显示事务通过begin transacton、commit transaction、commit work、rollback transaction或rollback work等语句完成。1、启动事务格式:begin tran 事务名或变量 with mark 描述2、结束事务格式:commit tran 事务名或变量 (事务名与begin tran中的事务名一致或commit work 但此没有参数3、回滚事务 rollback tran 事务名或变量 | savepoint_name | savepoint_variable 或rollback work 说明:清除自事务的起点或到某个保存点所做的所有数据修改4、在事务内设置保存点格式:save tran savepoint_name | savepoint_variable 示例:use bookdbgobegin tran mytraninsert into book values(9,"windows2000',1,22,'出版社')save tran mysavedelete book where book_id=9rollback tran mysavecommit trangoselect * from bookgo可以知道,上面的语句执行后,在book中插入了一笔记录,而并没有删除。因为使用rollback tran mysave 语句将操作回滚到了删除前的保存点处。5、标记事务格式:with mark 例:使用数据库标记将日志恢复到预定义时间点的语句 在事务日志中置入一个标记。请注意,被标记的事务至少须提交一个更新,以标记该日志。BEGIN TRAN MyMark WITH MARK UPDATE pubs.dbo.LastLogMark SET MarkTime = GETDATE() COMMIT TRAN MyMark 按照您常用的方法备份事务日志。BACKUP LOG pubs TO DISK='C:/Backups/Fullbackup.bak' WITH INIT 现在您可以将数据库恢复至日志标记点。首先恢复数据库,并使其为接受日志恢复做好准备。 RESTORE DATABASE pubs FROM DISK=N'C:/Backups/Fullbackup.bak' WITH NORECOVERY 现在将日志恢复至包含该标记的时间点,并使其可供使用。请注意,STOPAT在数据库正在执行大容量日志时禁止执行。 RESTORE LOG pubs FROM DISK=N'C:/Backups/Logbackup.bak' WITH RECOVERY, STOPAT='02/11/2002 17:35:00'5、不能用于事务的操作创建数据库 create database 修改数据库 alter database 删除数据库 drop database 恢复数据库 restore database 加载数据库 load database 备份日志文件 backup log 恢复日志文件 restore log 更新统计数据 update statitics 授权操作 grant 复制事务日志 mp tran 磁盘初始化 disk init 更新使用sp_configure后的系统配置 reconfigure二、自动提交事务 sql连接在begin tran 语句启动显式事务,或隐性事务模式设置为打开之前,将以自动提交模式进行操作。当提交或回滚显式事务,或者关闭隐性事务模式时,将返回到自动提交模式。示例: 由于编译错误,使得三个insert都没执行use testgocreate table testback(cola int primary key ,colb char(3))goinsert into testback values(1,'aaa')insert into testback values(2,'bbb')insert into testback value(3,'ccc')goselect * from testbackgo 没有任何结果返回三、隐式事务通过 API 函数或 Transact-SQL SET IMPLICIT_TRANSACTIONS ON 语句,将隐性事务模式设置为打开。下一个语句自动启动一个新事务。当该事务完成时,再下一个 Transact-SQL 语句又将启动一个新事务。当有大量的DDL 和DML命令执行时会自动开始,并一直保持到用户明确提交为止,切换隐式事务可以用SET IMPLICIT_TRANSACTIONS 为连接设置隐性事务模式.当设置为 ON 时,SET IMPLICIT_TRANSACTIONS 将连接设置为隐性事务模式。当设置为 OFF 时,则使连接返回到自动提交事务模式 语句包括: alter table insert open create delete revoke drop select fetch truncate table grant update 示例: 下面使用显式与隐式事务。它使用@@tracount函数演示打开的事务与关闭的事务:use testgoset nocount oncreate table t1(a int)goinsert into t1 values(1)goprint '使用显式事务'begin traninsert into t1 values(2)print '事务外的事务数目:'+cast(@@trancount as char(5))commint tranprint '事务外的事务数目:'+cast(@@trancount as char(5))goprintgoset implicit_transactions on go print '使用隐式事务'goinsert into t1 values*4)print'事务内的事务数目:'+cast(@@trancount as char(5))commint tran print'事务外的事务数目:'+cast(@@trancount as char(5))go执行结果: 使用显示事务事务内的事务数目:2 事务外的事务数目:1 使用隐式事务事务内的事务数目:1 事务外的事务数目:0四、分布式事务跨越两个或多个数据库的单个sql server中的事务就是分布式事务。与本地事务区别:必须由事务管理器管理,以尽量避免出现因网络故障而导致一个事务由某些资源管理器成功提交,但由另一些资源管理器回滚的情况。 sql server 可以由DTc microsoft distributed transaction coordinator 来支持处理分布式事务,可以使用 BEgin distributed transaction 命令启动一个分布式事务处理 分二阶段:A 准备阶段 B 提交阶段执行教程:1、sql 脚本或应用程序连接执行启动分布式事务的sql语句2、执行该语句的sql在为事务中的主控服务器3、脚本或应用程序对链接的服务器执行分布式查询,或对远程服务器执行远程存储过程。4、当执行了分布式查询或远程过程调用后,主控服务器将自动调用msdtc以便登记分布式事务中链接的服务器和远程服务器5、当脚本或应用程序发出commit或rollback语句时,主控sql将调用msdtc管理两阶段提交过程,或者通知链接的服务器和远程服务器回滚其事务。
⑼ 如何解决,服务器组件在此操作系统上不受支持,只有客户端才可以安装.
WIN98/XP只能完全安装SQL2000的个人版本,
标准版本和企业版本的SQL2000必须安装在NT4.0,SP6和WIN2000 SERVER版本上!
详细安装要求可以看SQL2000安装光盘上的说明。1、除了同意楼上以外,补充一点:
如果你是win98+sql server 企业版,可以采用一下办法:
a.在office 2000或office XP中有MSDE,实际就是sql server 桌面版,先安装;
b.再安装sql server 客户端工具 。
只要你在安装过程中退出安装后
要想再安装上,那就麻烦了,我曾经也和你一样
我删除了注册表里所有有关于SQL2000的注册信息
仍然无法重新安装 最后只有重装系统才能安装
我也不知道是什么原因
你安装的时候,切记一次到位,不要装到一半就结束
点开安装界面了,就要安装完。
mdac就是微软的数据接口合集,要么安装mdac,要么单独安装你的数据控件。
SQL Server 2000安装和基本框架
我们总是把SQL Server 这个单词挂在嘴边,也许很少有人思考过 SQL Server 到底是什么东西。这个问题很难用几句话讲清楚。我们之所以要用连载的方式讨论 SQL Server,就是要从不同的角度阐述这个问题。
一、服务器组件
SQL Server 2000由两个部分组成:服务器组件和客户端工具。
1.内容
SQL Server的服务器组件是以 Windows 服务(Windows Services)方式运行的。一般认为SQL Server包含四种Windows服务(这里我们关注OLTP、暂时不考虑 OLAP),分别是:M qlServer、DTC Distributed Tra action Coordinator 、SQLServerAgent、Search Service。
M qlServer 是最常用的服务,一般的数据库功能都是由它提供的,例如文件管理、查询处理、数据存储等;DTC是分布式事务协调器,支持跨越两个或多个服务器的更新操作来保证事务的完整性;SQLServerAgent负责SQL Server 自动化工作,如果需要SQL Server 在指定时间执行某一个存储过程,就需要用到这个服务了;Search Service是全文查询服务,负责全文检索方面的工作。
2.一分为四的理由
现在我们知道了 SQL Server 的核心是四个服务器组件,它们是以 Windows 服务的形式运行的。聪明的读者也许会思考这样的问题:为什么服务器组件以 Windows 服务方式运行?为什么需要把完整的系统分割成四个服务器组件?
●之所以把SQL Server服务器组件作为Windows服务程序,主要是因为Windows 服务程序能够在用户没有登录的情况下使用。
●之所以把SQL Server的核心功能分为四个Windows 服务程序,主要是考虑了以下因素:这些Windows 服务程序各自负担的任务功能上是可分割的,这是前提条件;不是每个应用都需要使用四个服务所提供的所有功能,让用户有选择的关闭一些服务,无疑可以节省系统的资源,也可以节省用户花在管理上的精力;最后,分开成为多个服务程序,就可以为每一个服务设定操作系统级的安全策略。
二、客户端工具
SQL Server 2000 的核心是上文讨论的那些服务器组件,但用户直接接触的却不是它们(虽然真正干活的是它们),而是客户端工具。服务器组件是引擎,客户端工具是用户界面,两者是相辅相成的。
让我们看看SQL Server 2000 的客户端工具到底有哪些——企业管理器、查询分析器、事件探查器、服务管理器、客户端网络实用工具、服务器网络实用工具、导入和导出数据(DTS)等等。
服务器组件与客户端工具功能上是配套的,客户端工具需要用最简单的形式表达最丰富的服务器组件的功能;服务器组件和客户端工具物理上是离散的,说句大白话:它们不是同一个程序!客户端工具要与服务器组件连通,需要一些用于通讯的动态链接库,SQL Server 2000 的通讯库支持多种网络协议,例如TCP/IP、命名管道等。
说到这里问题就很清楚了:只要客户端工具与服务器组件与功能上是配套(兼容)的,就可以通过一定的协议连接,所以我们只要在自己的机器上装一套客户端工具,就可以连接世界各地的SQL Server 服务器,当然这需要对方开放足够的权限。
提示:安装 SQL Server 2000 实际上就是安装服务器组件和客户端工具。当然,我们可以选择同时安装服务器组件和客户端工具,或者只安装其中的一个,甚至只选择安装更少的东西。
三、版本问题
SQL Server 2000有很多版本:企业版、开发版、标准版、个人版等。每一个版本包含的客户端工具基本上是一样的,而服务器组件可能有些不同。所以在安装 SQL Server 之前必须参考“操作系统和SQL Server”版本兼容表(图1),根据操作系统选择合适的 SQL Server 版本。
四、关于实例
在开始安装SQL Server之前,还有一个概念需要讲解,那就是SQL Server实例。前文我们提到SQL Server服务器组件是由四个Windows 服务程序构成,在实践中我们可能安装所有的服务器组件,也可能只安装其中的一部分,但是我们都需要一个统一的概念来标志一组SQL Server 服务,这个概念就是SQL Server 实例。
提示:可以这样理解,安装SQL Server 服务器组件,就是创建一个新的SQL Server 实例(当然也可能是在原有实例中增减服务组件)。SQL Server 2000 允许在同一个操作系统中创建多个实例,虽然一般情况下我们不会这么做。
●如果只安装一个 SQL Server 实例,不需要在SQL Server安装时指定实例名称,自动使用默认名称。那么在Windows域里计算机的名称就是 SQL Server 实例的名称;使用TCP/IP协议连接SQL Server 实例时,可以用IP地址表示SQL Server 2000实例。
●如果一个操作系统中安装了多个SQL Server 2000的实例,则需要在SQL Server安装时指定实例名称。
在Windows域里可以用“计算机名称/实例名称”的形式标志SQL Server 2000实例;使用TCP/IP协议连接SQL Server 实例时,可以用“IP地址/实例名称”表示SQL Server 2000实例。
五、安装实战
SQL Server 2000的安装程序是非常智能化的,基本上用户只需要跟着提示,选择默认项。下面笔者挑选一些需要注意的设定画面进行讲解。
●选择“创建新的SQL Server实例……”,如图2:
●为服务设定启动方式,这里有两个服务,分别是SQL Server和SQL Server 代理。其实就是前文提到的M qlServer和SQLServerAgent。这里我们操作系统以“本地系统账户”启动它们
●选择“混合模式”进行身份验证,如图5:
六、一窥芳容
安装完毕,你肯定迫不及待地要领略它的风采。不要着急,让我们先确认数据库服务器是否已经启动。前文我们提到SQL Server 2000核心是由四个服务器组件构成的,其中提供数据库服务的就是 M qlServer,现在我们就是要确认它是否已经启动。
1.服务管理器
●在“服务器”栏选择本机 SQL Server 实例的名称;
●在“服务”栏选择SQL Server(就是上文的M qlServer);
●按下“开始/继续”按钮,启动 M qlServer 服务;
●正常启动:
2.企业管理器
打开“企业管理器”,展开数据库本机SQL Server 实例节点的数据库项目,可以发现SQL Server 已经自动安装了六个数据库。
●master数据库记录SQL Server系统的所有系统级别信息。
●tempdb数据库保存所有的临时表和临时存储过程。
●model数据库是为用户创建数据库提供的模板。
●msdb数据库供SQL Server代理程序调度警报和作业以及记录各种操作。
●northwind和pu 是示例数据库,以后我们要经常利用它们做演示。
除了 northwind和 pu 之外,其他四个数据库都是由 SQL Server 自行维护的,一般不需要用户干预。
!!!!!
下载地址:http://www.51windows.net/shareurl/shareurl.asp?filename=sql+2000
XP系统下也可以安装 企业版本
安装办法如下:
一.在SQL服务器的安装盘中找到MSDE这个目录,并且点击setup.exe安装它,过程简单直接下一步就OK了。(这个是服务端,按正常方法会提示系统不支持)
二. 重启系统WINDOWSXP,这下就可以看到SQL服务的图标出现了。(服务器图表没出现也可先安装客户端在安装服务端)
三. 再拿出SQL服务器版的安装光盘,直接安装客户端工具(这个不要多说吧?最简单的方法就是直接点击光盘根目录下的autorun.exe)
根据提示安装,自检过程中知道系统不是SERVER版,会提示只安装客户端工具。(哈哈,服务端我已有了)
四. 打开企业管理器,试用SA用户连一下看看,是不是发现SA用户登陆失败?因为你还没有与信任SQL SERVER连接相关联。还好这个只要对系统注册表稍加修改就可以啦:
在运行中输入regedit打开注册表编辑器,找到[HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER],这个项里面
有一个键值LoginMode,默认下,值是1,现在将值改为2,重启电脑。
五. 再打开企业管理,再连接试试,是不是OK了!
