trigger(触发器)的判断语句和SQL的判断语句语法一样吗?

kinglw001 2011-03-31 11:16:20
表1

PK A B C
四列,
update的时候,通常是update C列
但是我需要判断,A列如果是null,就往表2里插一条数据,
B列为空就往表3里插一条数据。基本上A列B列,总有一列为空,另一列有数据。

我看我以前写的触发器,里面有if语句,也有case when,有点困惑了……
...全文
234 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kinglw001 2011-03-31
  • 打赏
  • 举报
回复
deleted的不行
消息 4104,级别 16,状态 1,过程 truApply,第 19 行
无法绑定由多个部分组成的标识符 "deleted.CPPK"。
kinglw001 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 andysun88 的回复:]
SQL code

Create Trigger TR_Update表1
on 表1
for update
begin
declare @oldAcloumn varchar(50)
declare @oldBcloimn varchar(50)

select @oldAcloumn = Acloumn,@oldBcloimn=Bcloimn from ……
[/Quote]
哦,要用deleted表,而不是insert的。我再试试
kinglw001 2011-03-31
  • 打赏
  • 举报
回复

--如果是修改Approve列,才begin
if Update(Approve)

BEGIN

SET NOCOUNT ON;

--如果旧表的CPPK 列是空的
if inserted.CPPK is null
INSERT INTO [GIS].[dbo].[PrjPermissions]
([UserPK]
,[ProjectID]
,[Permission]
,[StartDate]
,[EndDate]
,[Approver]
,[ApproveDate])
VALUES
(inserted.Applicant
,inserted.ProjectID
,inserted.Approve
,getdate()
,DATEADD(dd, 7, getdate())
,Respondent
,getdate())
END



这句
,inserted.ProjectID
报错

消息 128,级别 15,状态 1,过程 truApply,第 30 行
在此上下文中不允许使用名称 "inserted.Applicant"。有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。
gw6328 2011-03-31
  • 打赏
  • 举报
回复
is null
andysun88 2011-03-31
  • 打赏
  • 举报
回复

Create Trigger TR_Update表1
on 表1
for update
begin
declare @oldAcloumn varchar(50)
declare @oldBcloimn varchar(50)

select @oldAcloumn = Acloumn,@oldBcloimn=Bcloimn from deleted
if @oldAcloumn= null
begin
insert into 表2 values()
end
if @oldBcloimn= null
begin
insert into 表3 values()
end
end
kinglw001 2011-03-31
  • 打赏
  • 举报
回复
给点代码吧
快溜 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 kinglw001 的回复:]
表1

PK A B C
四列,
update的时候,通常是update C列
但是我需要判断,A列如果是null,就往表2里插一条数据,
B列为空就往表3里插一条数据。基本上A列B列,总有一列为空,另一列有数据。

我看我以前写的触发器,里面有if语句,也有case when,有点困惑了……
[/Quote]一样的
Billy 2011-03-31
  • 打赏
  • 举报
回复
一样
完全一样
水族杰纶 2011-03-31
  • 打赏
  • 举报
回复
语句都一样的
主要是逻辑

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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