插入的数据不符合格式怎么办?

haochin 2008-08-26 03:30:40
表为TABLE1
列为COL1

COL1中的一列是CHAR(5)型,记录的是HH:MM格式的字符。

问题:
如果COL1中的数据更新或插入时,数据格式不合法,即 isdate('23:59') 不为真时,要不能插入或更新数据。

请问要怎么做啊?

是不是要在SQL SERVER中的TABLE1中写个触发器来判断?
具体要怎么做?
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
haochin 2008-08-26
  • 打赏
  • 举报
回复
谢谢wgzaaa
你的方法不错。我参照了。
wwwtyb 2008-08-26
  • 打赏
  • 举报
回复
-- =============================================
-- 日期格式检测
-- =============================================
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'tr_checkDate'
AND type = 'TR')
DROP TRIGGER tr_checkDate ;
GO

CREATE TRIGGER [dbo].[tr_checkDate]
ON TABLE1
INSTEAD OF DELETE, INSERT, UPDATE
AS
BEGIN
DECLARE @COL1 CHAR(5)

SELECT @COL1=COL1 FROM INSERTED WHERE COL1 LIKE '__:__'

IF @COL1 IS NULL
PRINT '插入或者更新时候 格式出错!!!!'
END
GO
水族杰纶 2008-08-26
  • 打赏
  • 举报
回复
declare @t table(date datetime)
declare @d datetime
set @d='26:59'
if isdate(@d)=1
insert @t select @d
else
print'不合法'
select * from @t
wgzaaa 2008-08-26
  • 打赏
  • 举报
回复
--sorry
insert TABLE1 (COL1) select '23:59' where isdate('23:59') =1
wgzaaa 2008-08-26
  • 打赏
  • 举报
回复
--不用触发器
insert TABLE1 (COL1) values('23:59') where isdate('23:59') =1

34,593

社区成员

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

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