这个要用动态sql来做,有问题再追问。
CREATE PROCEDURE proc_readtabAS
BEGIN
SET NOCOUNT ON
DECLARE @tabname VARCHAR(20),@sql VARCHAR(200)
DECLARE tab_cur CURSOR FOR SELECT tname FROM sysobjects where name like 'Image_2014%'
OPEN tab_cur
FETCH NEXT FROM tab_cur INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @sql = 'SELECT Device_ID,MAX(Create_TIME) FROM ' + @tablename + 'group by Device_ID'
EXEC(@sql)
FETCH NEXT FROM tab_cur INTO @tablename
END
CLOSE tab_cur
DEALLOCATE tab_cur
END
GO
这个问题要看你在什么样的应用场景下了。如果数据库是暴露在项目之外的,或许共享的数据库,也就是说,什么时候更新了数据,你的应用程序是不知道的,这种情况下,一般采用轮询的方式。如果是自己的大项目中的数据库,一般采用DDD的开发方式,由不同领域之间通过Event Bus来通知数据的更新。
总的来说,在越成熟的项目中,业务模型的地位越重要,数据库作为技术模型是越应该被抽象掉的。所以建议你即使是在不大的项目中,也尽量采用Event Bus的方式。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)