MSSQL网页设计经由过程触发器完成数据库的立即同步
限制,如果WHERE子句的查询条件里有不等号(WHEREcoloum!=),MySQL将无法使用索引。类似地,如果WHERE子句的查询条件里使用了函数(WHEREDAY(column)=),MySQL也将无法使用索引。触发器|数据|数据库--立即同步两个表的实例:
--测试情况:SQL2000,远程主机名:xz,用户名:sa,暗码:无,数据库名:test
--创立测试表,不克不及用标识列做主键,由于不克不及举行一般更新
--在本机上创立测试表,远程主机上也要做一样的建表操纵,只是不写触发器
ifexists(select*fromdbo.sysobjectswhereid=object_id(N)andOBJECTPROPERTY(id,NIsUserTable)=1)
droptable
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高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用 从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。 多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。 其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?! 而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。 比如日志传送、比如集群。。。 我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过! 一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
页:
[1]