这是我写的
ALTER PROCEDURE [dbo].[Sp_InUp_TerminalMessageRelation]
@TerminalId int,
@MessageId int
AS
declare @SCreenNo int
declare @Count int
select @SCreenNo= SCreenNo from [message] where id = @MessageId
select @Count =count(*) from TerminalMessageRelation where terminalid =@TerminalId and messagetype = @SCreenNo
if(@Count >0)
update TerminalMessageRelation set MessageId = @MessageId where terminalid =@TerminalId and messagetype = @SCreenNo
else insert into TerminalMessageRelation(MessageId,MessageType,TerminalId)values(@MessageId,@SCreenNo,@TerminalId)怎么写到数据库中MessageType是空的
另外我在程序调用还出错了
ALTER PROCEDURE [dbo].[Sp_InUp_TerminalMessageRelation]
@TerminalId int,
@MessageId int
AS
declare @SCreenNo int
declare @Count int
select @SCreenNo= SCreenNo from [message] where id = @MessageId
select @Count =count(*) from TerminalMessageRelation where terminalid =@TerminalId and messagetype = @SCreenNo
if(@Count >0)
update TerminalMessageRelation set MessageId = @MessageId where terminalid =@TerminalId and messagetype = @SCreenNo
else insert into TerminalMessageRelation(MessageId,MessageType,TerminalId)values(@MessageId,@SCreenNo,@TerminalId)怎么写到数据库中MessageType是空的
另外我在程序调用还出错了
只是MessageType是空的
)
2.出的什么错呢,怎么调用的呢单独这样看你的存储过程,至少从语法上是正确的
ALTER PROCEDURE [dbo].[Sp_InUp_TerminalMessageRelation]
@TerminalId int,
@MessageId int
AS
begin
declare @SCreenNo int
declare @Count int
select @SCreenNo= SCreenNo from [message] where id = @MessageId
select @Count =count(*) from TerminalMessageRelation where terminalid =@TerminalId and messagetype = @SCreenNo
if (@Count >0)
update TerminalMessageRelation set MessageId = @MessageId where terminalid =@TerminalId and messagetype = @SCreenNo
else
insert into TerminalMessageRelation(MessageId,MessageType,TerminalId) values (@MessageId,@SCreenNo,@TerminalId)
end
唯一对@SCreenNo操作的就是这里,如果INSERT后MessageType为空,那多半就是@SCreenNo为空,也就是SELECT语句那里得到的就是为空。
--如果这里返回不止一条,@SCreenNo只有这才赋值
改成
set @SCreenNo=(select top 1 SCreenNo from [message] where id = @MessageId)