以Northwind数据库的Categories表为例,增加或修改的存储过程:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
create PROCEDURE Categories_InsertOrUpdate@CategoryID int,@CategoryName nvarchar(15),@Description ntext,@Picture image AS if not exists(select * from Categories where CategoryID=@CategoryID) begin INSERT INTO Categories(CategoryName,[Description],Picture) VALUES(@CategoryName,@Description,@Picture) endelse begin UPDATE Categories SET CategoryName=@CategoryName, [Description] = @Description,Picture= @Picture WHERE CategoryID=@CategoryID end
测试:
exec Categories_InsertOrUpdate 9,'noodles', 'A kind of food',null
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
SELECT [CategoryID] ,[CategoryName] ,[Description] ,[Picture] FROM [Northwind].[dbo].[Categories]
再次执行验证:
exec Categories_InsertOrUpdate 9,'noodles', 'A kind of delicious food',null
查询验证截图: