用什么好?这个是问的用什么
数据库好吗?还是其他的? 追问:
插入SQL
数据库 .... 回答: 这中问题很常见啊,直接用sqltransaction,注意在一个 *** 作里面只用这个一个sqltransaction,不可以new新的 数据链接 追问: sqltransaction里 逐行用Insert into 插入 用时间太久....同时插入两个表 而且表里属性30个...用啥快点 回答: 呃,只是属性多,也就是语句长点,插入两张表就两条sql语句呗。再说你说插入时间太久?那应该是sql语句的问题吧吧 追问: 先删除原表相关数据...后对插入的数据 每一条数据从 数据库 查询出来后 再进行补充完整...再将这条数据按一定条件 属性分开插入两个表....一条属性最多可以分成6条数据插入表中 回答: 那查询时候你可以另开conn。但速度也不会有多大提高,毕竟程序是按行执行,那只能优化下你的 逻辑 算法了 追问: 哎....没办法.....如果用SQL2005版本 就可以数据 自动 *** 作 ~~~直接将大量数据插入 数据库 一个表中...再数据库后台处理....不过SQL2000的话~~~~就要自己另写win服务程序...怕麻烦 回答: 呃,现在 数据库 2000都不多了,大多都05,05的也不少,2012都来了,还使用着2000,怀旧啊,这让以后接手这项目维护的人 情何以堪 啊 追问: 没办法了~~~人家几年 前开发 的~~~整个系统牵涉太多....现在又忙着开发其他模块...没时间提升到SQL2005......谢谢啦 回答: 不用升级吧, 数据库 不是向下兼容吗,2000的数据库在05或以上的一样跑,那么以前的就先不优化,行模块就可以用05的数据库了,等以后有时间再把2000的数据库 *** 作的重构下呗你的需求可以有不同的解决方案:1.程序中处理: 在你的程序中有对某个表的insert *** 作的地方,在insert *** 作完成之后,查询该表的记录数,如果超过你设定的数量,则把用delete *** 作将前面的数据删除。 2.数据库触发器: 一般数据库系统都是支持“触发器trigger”的,你可数据库中创建一个 当insert *** 作时触发的触发器,拿SQL Server来说: CREATE TRIGGER TRI_INS_DEPT
ON DEPT
FOR INSERT
AS
--声明变量
DECLARE @sDEPTORDER VARCHAR(30)
--从inserted表提取待插入的纪录
select @sDEPTORDER=DEPTORDER from inserted
--检测该条数据是否符合我们的要求,不符合的话.则要返回错误
IF @sDEPTORDER <5
BEGIN
--禁止插入数据,事务回滚
rollback tran
raiserror('DEPTORDER is denyed When Lessen Then 5',16,10)
END
评论列表(0条)