SQL Server2005中,给数据库设置触发器时,创建触发器时,前后语句都正确,就是中间的T-SQL语句,判断语句

IF,THEN这种结构应该是没有的,所以输入的时候显示错误,请问如何用IF,ELSE,BEGIN,END结构实现以下语句:当输入的数值col大于100小于1000时将输入... IF,THEN这种结构应该是没有的,所以输入的时候显示错误,请问如何用IF,ELSE,BEGIN,END结构实现以下语句:当输入的数值col大于100小于1000时将输入的数值置为50,输入的数值col大于1000的时候显示输入的数值不能大于1000。
例如用IF……ELSE IF后面是条件(new.col>100)AND(new.col<1000),那么结果new.col=50这一句应该放在哪里呢
展开
 我来答
prgoj64
2010-12-16 · TA获得超过1835个赞
知道小有建树答主
回答量:1272
采纳率:66%
帮助的人:705万
展开全部
那是很难的,不要忘记,有时候,你可能会更新一批记录.那时候,你还要考虑执行的问题.

不必客气.
您想拦截语句,这恐怕比较麻烦,不过你可以用事务来做.可是,我不明白您这样做是为什么.
如果只是想知道执行了什么语句,那SQL 事件查探器就可以了嘛.

你的这种思路恐怕有些问题,永远只有通过语句来执行进行修改的,而不能够通过修改来生成语句.特别是你所谓的触发器的语句.
你试想一下,当你修改表中的某条记录时,其实是执行的一段SQL的语句代码,而这一段代握耐码的搜皮拿执行又会触发到触发器,你是很难确定对记录做了什么样的调整的.

我之所以这样说,只是告诉你思路问题,而你的问题依然可以实现.只是实现世搭的方法非常的不聪明.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Blue_Hriver
2010-12-16 · 超过15用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:0
展开全部
create trigger 触发器名称
for insert 或者update 或凳启者delete
as
变量声明竖竖等
if (new.col>100) and (new.col<1000)
begin
set @new.clo=50
end
else
if (new.col>1000)
begin
print '输入的数值不能余粗大大于1000'
end

参考资料: be

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式