标题:SQL server 如何做到表的自检查 ,例如检查主键是否唯一,以及检查每次插入 ...
只看楼主
aotoman
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2015-12-21
结帖率:0
已结贴  问题点数:20 回复次数:1 
SQL server 如何做到表的自检查 ,例如检查主键是否唯一,以及检查每次插入的行数是否满足某一范围值

主要问题是这个样的:
       每天我都要向一个表中插入数据,我想判断每天插完数据后,这一天表中插入数据的条目是否会在某两个数值范围内,如果插入数据的总条目不在这个数据范围内就报错给我发邮件。我想这个过程通过SSIS进行.

不知道有没有高手可以实现这样的功能么?

例如,今天向表A插入了1000条数据,但是 我设的插入条数目范围是 2000-3000这是 就在SSIS里面 通过发送错误邮件给我。
搜索更多相关主题的帖子: server 如何 
2016-06-01 21:43
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:20 
你表中要有1个字段,记录每次插入的时间,如字段 时间 datetime,
在每次插入数据前,先检查数据库中和本次插入数据的日期相同的记录总数,如果在你的设置范围内,你就执行插入动作,否则,就报错误。

SQL 的时间,是带日期和时分秒的,要用函数CONVERT()只取前10位的日期,如
declare @dt datetime
set @dt=getdate()
CONVERT(VARCHAR(10),@dt,120)
查询相同记录总数这个 CONVERT(VARCHAR(10),@dt,120),@dt就是你本次要插入的数据的时间,CONVERT(VARCHAR(10),时间,120)的时间,就是你表A的字段
select count(*) as 总数 from 表a where CONVERT(VARCHAR(10),时间,120)=CONVERT(VARCHAR(10),@dt,120)

由于你插入数据前要查询数据,所以用存储过程来处理,比较方便。
以上是大概的思路。

2016-06-02 09:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-465492-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.558650 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved