每隔一段时间获取一次数据,并且修改数据库数据。
大家好,我的问题是这样的:我要从别的系统的数据库里获取多个产品型号的数量的数据,这个数据可能有很多条(因为是多个产品型号),我想从我的系统里减去获取的相对应的产品型号的数量,这里的数量就是从别的数据获取过来的数量。
大体上说就是随时修改我的系统里产品型号的数量,卖了多少,还剩余多少,给客户显示出来,让客户知道每个产品型号还有多少库存。由于卖了多少,这个数量是从别的数据获取的,因此向大家求救,不知道该怎么实现比较好。
------解决方案--------------------你可以用JOB定时操作!要么就触发器
------解决方案--------------------SQL里面的作业调度.
事先写好作业的SQL语句.然后设置下时间就可以了
------解决方案--------------------作业,SQL企业管理器-> 所在数据库-> 管理-> sql sever代理-> 作业
------解决方案--------------------在别的数据库中用触发器将库存变化保存一个新表内,这样客户只要查询新表就行了.
------解决方案--------------------1,楼主你的数据库和另一个系统的数据库是不是在同一台数据库服务器上?
2,楼主你对另一个系统的数据库有没有操作权?
3,楼主你对该功能的实时度要求有多高?
假如你对1和2的答案都是肯定的,那建议楼主你用触发器来实现,另外如果楼主你要求的实时度不高的话也可以写个定时执行的Windows服务。
------解决方案--------------------不是一个数据库啊,是两个系统的数据库,如何实现?
_________________________________________________
比如你要访问的数据库名为A,表为A1,那么在你的数据库中建一个链接服务器(假设名为:lnk_xx),那么通过如下语句就可以访问A数据库的表A1的数据:
select * from lnk_xx.yy(yy指的是登录A数据库的帐号的角色,如dbo等).A1(A1为表名)
------解决方案--------------------如何建立链接服务器?:
http://topic.csdn.net/t/20031213/14/2560158.html
------解决方案--------------------直接从另外一个数据的表获取数据吗?这样好不好?
re: 不好。
你可以写一个article将数据复制过来,同时加上一个job,这样就可以时时操作了,至于怎么写着两个脚本,你可以查一下资料,结合自己的情况写。(基本上你可以将你需要的表名替换tablename就可以了)
IF NOT EXISTS (SELECT 1 FROM [dbo].[sysarticles] WITH (NOLOCK) WHERE NAME = 'tablename ')
BEGIN
PRINT 'Adding tablename Article to the DomainData Publication... '
EXECUTE sp_addarticle
@publication = N 'DomainData ',
@article = N 'tablename ',
@source_owner = N 'dbo ',
@source_object = N 'tablename ',
@type = N 'logbased ',
@description = N ' ',
@creation_script = N ' ',
@pre_creation_cmd = N 'drop ',
@schema_option = 0x00000000000000F3,
@identityrangemanagementoption = N 'none ',
@destination_table = N 'tablename ',
@destination_owner = N 'dbo ',
@status = 16,
@vertical_partition = N 'false ',
@ins_cmd = N 'CALL [sp_MSins_tablename] ',
@del_cmd = N 'CALL [sp_MSdel_tablename] ',
@upd_cmd = N 'CALL [sp_MSupd_tablename] ',
@force_invalidate_snapshot = 1
PRINT 'Refreshing the subscriptions to DomainData... '
-- Refresh the subscriptions to apply changes for new article
EXECUTE sp_refreshsubscriptions N 'DomainData '
END