如何用触发器实现,提示某个字段必须录入数据?

minist 2007-03-21 05:04:07
表table1,字段field1,字段flag。 field1设置为允许为空
应用程序的客户端如果没有录入field1,在保存时,
需要有一个提示信息,告诉用户field1没有录入数据。

if flag=1 and field1 is null
保存时提示field1没有录入数据
请问能否用触发器实现?(应用程序没有程序代码)
...全文
368 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
paoluo 2007-04-03
  • 打赏
  • 举报
回复
如果同時插入多條數據,樓上的觸發器就有問題了。

你直接給這個字段設置為不能為空,插入的數據如果為空就不能保存了,何必用觸發器這麼麻煩。
minist 2007-03-22
  • 打赏
  • 举报
回复
回复人:rockyljt(江濤) () 信誉:100 2007-3-21 17:21:33 删除

后台可以用觸發器實現
但是強烈建議樓主在前台去控制,如果field1用戶未輸入則提示其field1不能為空。
---------------------------------------------------------------------------
回复人:happyflystone(无枪的狙击手) () 信誉:100 2007-3-21 17:25:55 删除

可行,但是不可取,
因为你没有程序代码 ,可用触发器的INSTEAD OF选项

-----------------------------------------------------------------------


如果可行,能否写个触发器参考一下.
但我的是SQLSERVER2000 ,没有应用程序的源代码

eyan_810810 2007-03-22
  • 打赏
  • 举报
回复
up
tmc1703 2007-03-22
  • 打赏
  • 举报
回复
关注
---涛声依旧--- 2007-03-22
  • 打赏
  • 举报
回复
CREATE TRIGGER [dbo].[table1Insert] ON [dbo].[table1]
FOR INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON

declare @flag varchar(20),@field1 varchar(50)
set @flag=''
set @field1=NULL

select @flag=flag,@field1=field1 from INSERTED


if @flag='1' and @field1 is null
BEGIN
rollback

RAISERROR ('field1没有录入数据',11,1)
return
END
END
-狙击手- 2007-03-21
  • 打赏
  • 举报
回复
可行,但是不可取,
因为你没有程序代码 ,可用触发器的INSTEAD OF选项
---涛声依旧--- 2007-03-21
  • 打赏
  • 举报
回复
--若要實現的話,SQL2005中可以創建一個insert觸發器
create TRIGGER [dbo].[table1Insert]
ON [dbo].[table1]
FOR INSERT
AS
BEGIN
SET NOCOUNT ON;

if flag=1 and field1 is null
BEGIN
rollback

RAISERROR ('field1没有录入数据',11,1)
return
END
END
---涛声依旧--- 2007-03-21
  • 打赏
  • 举报
回复
后台可以用觸發器實現
但是強烈建議樓主在前台去控制,如果field1用戶未輸入則提示其field1不能為空。
zsl5305256 2007-03-21
  • 打赏
  • 举报
回复
field1设置为不允许为空!
用触发器不可取
create trigger tr_insert
instead of insert on tabel

................
mengmou 2007-03-21
  • 打赏
  • 举报
回复
提示信息要么用前台程序,要么触发器返回。
mengmou 2007-03-21
  • 打赏
  • 举报
回复
数据库中设置该字段not null 啊
子陌红尘 2007-03-21
  • 打赏
  • 举报
回复
不可行也不可取:

1、既然需要限制字段不为空,就应该在创建表时设置

2、如果希望单独限制应用程序端的录入,应该在应用程序或者存储过程中限定
paoluo 2007-03-21
  • 打赏
  • 举报
回复
既然不能為空,直接在數據庫設置為不能為空不就可以。

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧