| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2902 人关注过本帖
标题: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
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册: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
快速回复:SQL server 如何做到表的自检查 ,例如检查主键是否唯一,以及检查每次 ...
数据加载中...
 
   



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

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