T-sql 创建function 里面执行 update语句 遇到的问题

我有两张表,一张是:Prod_Device,另一张是:Prod_DevicePhase两张表是有关联的。

我想根据 Prod_Device 表的 FNumber 字段 和 Prod_DevicePhase表的 FPhaseName字段的条件而清空体 Prod_DevicePhase表的FFinisherID , FFinishDate字段,所以定义了一个 function

在检查的时候,没有语法错误,可是在运行的时候,就提示:

“消息 443,级别 16,状态 2,过程 SetAssureBack,第 5 行
在函数内不正确地使用了 'UPDATE'。”,求高人指教.

create function SetAssureBack (@FNumber varchar(50),@FPhaseName varchar(50))
returns int
as
begin
   update Prod_DevicePhase set FFinisherID=null,FFinishDate=null where FDeviceID = (select  FID from Prod_Device where FNumber=@FNumber)
  and  FPhaseName=@FPhaseName;
 return 1;
end
go

茅侃侃
浏览 749回答 3
3回答

慕侠2389804

FDeviceID IN (select FID....

手掌心

看意思好像不能在里面用update,如果想用,换成procedure吧。

神不在的星期二

只能执行select语句,不支持update,insert,
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server