|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
限制,如果WHERE子句的查询条件里有不等号(WHEREcoloum!=),MySQL将无法使用索引。类似地,如果WHERE子句的查询条件里使用了函数(WHEREDAY(column)=),MySQL也将无法使用索引。触发器|数据|数据库
--立即同步两个表的实例:
--测试情况:SQL2000,远程主机名:xz,用户名:sa,暗码:无,数据库名:test
--创立测试表,不克不及用标识列做主键,由于不克不及举行一般更新
--在本机上创立测试表,远程主机上也要做一样的建表操纵,只是不写触发器
ifexists(select*fromdbo.sysobjectswhereid=object_id(N[test])andOBJECTPROPERTY(id,NIsUserTable)=1)
droptable[test]
createtabletest(idintnotnullconstraintPK_testprimarykey
,namevarchar(10))
go
--创立同步的触发器
createtriggert_testontest
forinsert,update,delete
as
setXACT_ABORTon
--启动远程服务器的MSDTC服务
execmaster..xp_cmdshellisql/S"xz"/U"sa"/P""/q"execmaster..xp_cmdshellnetstartmsdtc,no_output",no_output
--启动本机的MSDTC服务
execmaster..xp_cmdshellnetstartmsdtc,no_output
--举行散布事件处置,假如表用标识列做主键,用上面的办法
BEGINDISTRIBUTEDTRANSACTION
deletefromopenrowset(sqloledb,xz;sa;,test.dbo.test)
whereidin(selectidfromdeleted)
insertintoopenrowset(sqloledb,xz;sa;,test.dbo.test)
select*frominserted
committran
go
--拔出数据测试
insertintotest
select1,aa
unionallselect2,bb
unionallselect3,c
unionallselect4,dd
unionallselect5,ab
unionallselect6,bc
unionallselect7,ddd
--删除数据测试
deletefromtestwhereidin(1,4,6)
--更新数据测试
updatetestsetname=name+_123whereidin(3,5)
--显现测试的了局
select*fromtestafulljoin
openrowset(sqloledb,xz;sa;,test.dbo.test)bona.id=b.id
Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用 |
|