山那边是海 发表于 2015-1-16 22:28:41

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高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用

因胸联盟 发表于 2015-1-19 14:07:03

从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。

莫相离 发表于 2015-1-26 10:13:18

多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。

柔情似水 发表于 2015-2-4 14:22:57

其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!

海妖 发表于 2015-2-28 15:12:48

而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。

乐观 发表于 2015-3-10 00:50:51

比如日志传送、比如集群。。。

再现理想 发表于 2015-3-17 04:07:45

我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!

小妖女 发表于 2015-3-23 18:26:51

一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
页: [1]
查看完整版本: MSSQL网页设计经由过程触发器完成数据库的立即同步