SQL建立触发器,如果插入相同记录则提示不能插入
1.在某一数据库中建立一个名为HH的INSERT触发器,存储在”C”表中.该触发器的作用是:当用户向”C”表中插入记录时,如果插入了”C”表中没有的课程号,则提示可以插入...
1.在某一数据库中建立一个名为HH的INSERT触发器,存储在”C”表中.该触发器的作用是:当用户向”C”表中插入记录时,如果插入了”C”表中没有的课程号,则提示可以插入记录,否则提示不可以插入记录.
ALTER TRIGGER HH
ON C
FOR INSERT
AS
DECLARE @A VARCHAR(20)
SELECT @A=c# FROM INSERTED
BEGIN TRANSACTION
IF @A IN (SELECT c# FROM C)
BEGIN
PRINT '不可以插入记录'
ROLLBACK TRAN
END
ELSE
PRINT '可以插入记录'
2.在某一数据库中建立一个名为HH的INSERT触发器,存储在”C”表中.该触发器的作用是:当用户向”C”表中插入记录时,如果插入了”C”表中的记录不是空值,则提示可以插入记录,否则提示不可以插入记录.
ALTER TRIGGER HH
ON C
FOR INSERT
AS
DECLARE @A VARCHAR(20)
SELECT @A=c# FROM INSERTED
BEGIN TRANSACTION
IF @A <>''
PRINT '可以插入记录'
ELSE
BEGIN
PRINT '不可以插入记录'
ROLLBACK TRAN
END
第二题完全正确,第一题运行正确,但是插入没有达到预期效果,都是提示不可以插入,请大家帮我看看.谢谢! 展开
ALTER TRIGGER HH
ON C
FOR INSERT
AS
DECLARE @A VARCHAR(20)
SELECT @A=c# FROM INSERTED
BEGIN TRANSACTION
IF @A IN (SELECT c# FROM C)
BEGIN
PRINT '不可以插入记录'
ROLLBACK TRAN
END
ELSE
PRINT '可以插入记录'
2.在某一数据库中建立一个名为HH的INSERT触发器,存储在”C”表中.该触发器的作用是:当用户向”C”表中插入记录时,如果插入了”C”表中的记录不是空值,则提示可以插入记录,否则提示不可以插入记录.
ALTER TRIGGER HH
ON C
FOR INSERT
AS
DECLARE @A VARCHAR(20)
SELECT @A=c# FROM INSERTED
BEGIN TRANSACTION
IF @A <>''
PRINT '可以插入记录'
ELSE
BEGIN
PRINT '不可以插入记录'
ROLLBACK TRAN
END
第二题完全正确,第一题运行正确,但是插入没有达到预期效果,都是提示不可以插入,请大家帮我看看.谢谢! 展开
2013-07-12
展开全部
这么简单的问题。要实现不能往数据库插入相同的纪录为什么要采用触发器呢?用唯一标识约束,不是更合理么?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-12
展开全部
事物不用提交吗 ?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询