|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于insert和delete,event中包含了插入/删除的记录的所有字段的值(太爽了。。)之前一向以为SqlServer中的同义词(Synonym)没有甚么用途,以是也一向没有往查它的语法格局。明天碰着一个成绩,用Synonym来办理再好不外了。成绩是如许子的,我的体系顶用到了多个数据库,然后由于各个数据库中的某些数据必要同步,以是我就在个中的某个数据库中的表中增加触发器,来同步更新别的数据库中的数据。举比方下:
有两个数据库A和B,分离有表a1与b1,然后我在表a1创立了触发器来更新表b1中的数据,触发器也许以下:
createtriggertu_a1afterupdate
as
……
updatet2sett2.字段=t1.字段
frominsertedt1,B..b1t2wheret1.字段=t2.字段
归正就是,我在a1的触发器顶用到了B..这类体例来援用数据库B中的工具。
然后成绩就来了,明天老板说在统一台服务器上要同时安装多个体系。那末就必要把数据库A和数据库B复制多份,固然复制出来的数据库名字就不克不及叫A和B了,大概叫A1与B1。那末A1中的触发器就不克不及更新B1中的数据了,由于A1中的触发器是利用B..这类体例来援用的。这类情形下,必需将全体的B..全体换成B1..。如许,假如如许援用的中央多了,那就是一场劫难了。
利用同义词Synonym就可以很好的办理这个成绩,起首也许说一下同义词(Synonym)的感化。
同义词:就是界说一个字符串称号,用来取代一个成心义的援用工具。
在上例中,我能够用Bb1这个字符串来代代B..b1,那末今后我要操纵B..b1这表,就能够间接操纵Bb1,与操纵前者一样的效果。那末,在部署多套体系时,只需修正一下新数据库中这个同义词的援用就能够了,触发器基本不必要修正。
上面是“创立,删除,援用”同义词的sql语句示例,注重,同义词不供应修正的功效,以是一旦创立了,就只能删除再重修,是不克不及够修正的。
创立同义词
createsynonymBb1
fromB..b1
利用同义词
insertintoBbl(……)values(……)
援用同义词
select*fromBbl
删除同义词
dropsynonymBb1
查询一切同义词
select*fromsys.synonyms
注重:只要SqlServer2005及今后的版本中才有Synonym。在ORDERBY操作中,MySQL只有在排序条件不是一个查询条件表达式的情况下才使用索引。(虽然如此,在涉及多个数据表查询里,即使有索引可用,那些索引在加快ORDERBY方面也没什么作用)。 |
|