WEB开发网      濠电娀娼ч崐濠氬疾椤愶附鍋熸い鏍ㄧ〒闂勫嫰鏌﹀Ο渚Ц闁诲氦顕ч湁婵犲﹤楠告禍鍓х磼鏉堛劌绗氶柟宄版嚇閹晠宕归銈嗘濠电偞鍨堕幐鎾磻閹捐秮褰掓偐閻戞﹩妫勯梺鎼炲妼鐎涒晝绮嬪澶樻晝闁挎繂鏌婇敃鍌涚厵閻庢稒锚閻忥絾绻濇繝鍐ㄧ伌闁诡垰鍟村畷鐔碱敂閸♀晙绱樺┑鐐差嚟婵儳螞閸曨剚鍙忛柍鍝勬噹缁€澶嬬箾閹存繄锛嶆鐐灲閹綊宕惰濡插鏌涢妸銉ヮ劉缂佸倸绉归弫鎾绘晸閿燂拷 ---闂備焦瀵уú鈺呭箯閿燂拷
开发学院数据库MSSQL Server 一步步教你配置SQL SERVER合并复制(六)配置Publ... 阅读

一步步教你配置SQL SERVER合并复制(六)配置Publisher(下)

 2008-11-01 10:08:56 来源:WEB开发网 闂備線娼уΛ鎾箯閿燂拷闂備礁鎲¢崹鐢垫崲閹扮増鍎嶆い鎺戝€甸崑鎾斥槈濞嗗秳娌紓鍌氱▌閹凤拷濠电姭鎷冮崨顓濈捕闂侀潧娲ゅú銊╁焵椤掍胶鈯曢柕鍥╁仧缁辩偤鏁撻敓锟�闂備線娼уΛ鎾箯閿燂拷  闂備胶枪缁绘鈻嶉弴銏犳瀬闁绘劕鎼痪褔鏌曟繝蹇曠窗闁煎壊浜滈—鍐偓锝庡墮娴犙勭箾閸喎鐏ユい鏇樺劦椤㈡瑩鎮℃惔銇帮拷
核心提示:在弹出来的Add Filter这个页面,在左边的栏里你可以到表中的字段都罗列出来了,一步步教你配置SQL SERVER合并复制(六)配置Publisher(下),双击CityId列将它移到右边的Fileter statement,增加一个条件像CityId=1这样的,这样子的结果是无法创建Publication,因为H

在弹出来的Add Filter这个页面,在左边的栏里你可以到表中的字段都罗列出来了,双击CityId列将它移到右边的Fileter statement,增加一个条件像CityId=1这样的,这样的话就会减小订阅用户同步数据的数量,当然这里的值你必须定义一个常量,因此这个叫做Static Filter(静态查询).

一步步教你配置SQL SERVER合并复制(六)配置Publisher(下)

在我们的应用中表里的数据有几百万条是一件很正常的事,但有时候设备所需要的数据却仅仅是这几百万条中的几千条,这个时候静态过滤就派上它的用场了。我们继续,先将CityId=1删除掉因为我们有更重要的条件要应用。

如果你想减小客户端同步数据的数量,举个例子,就想我们这里的应用一样,每个用户只需同步他相应城市的数据,我们有字段CityId可以做到这个过滤,但我们不能用静态过滤,因为那只能过滤到一个城市。其实这个时候我们有个方法那就是用Parameterized Filter(参数查询).这里要求使用到 SQL SERVER的HOST_NAME()这个函数来实现这个过滤,只需将Replication对象的属性设置成HOST_NAME()所对应的值就可以了。你似乎可以写成下面这样的条件:

WHERE [CityId]=CONVERT(int,HOST_NAME())

不过很不幸的是,这样子的结果是无法创建Publication,因为HOST_NAME()的值是无法强制转换成Integer类型的。不过你可以这样写:

CONVERT(nchar,CityId)=HOST_NAME()

其实解决这个问题也不难,你可以执行sp_changemergearticle存储过程来替换下面的条件

WHERE [CityId]=CONVERT(int,HOST_NAME())

1 2 3 4  下一页

Tags:步步 配置 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接