有一个存储过程,代码如下:
create proc deleteCate(@cateId int )
as
delete from comment where newsId in (select newsId from news where cateId=@cateId)
delete from news where cateId=@cateId
delete from category where cateId=@cateId
其中表category中的cateId对应news表中的外键cateId , news表中的newsId对应comment表中的外键newsId,在执行过程中出错了,显示是:
消息 207,级别 16,状态 1,过程 deleteCate,第 3 行
列名 'cateId' 无效。
消息 207,级别 16,状态 1,过程 deleteCate,第 4 行
列名 'cateId' 无效。
如果创建一个触发器:
create TRIGGER [deleteCate]
ON [dbo].[category]
instead of DELETE
AS
declare @cateId int
select @cateId = cateId from deleted
delete from comment where newsId in (select newsId from news where cateId=@cateId )
delete from news where cateId=@cateId
delete from category where cateId=@cateId
那么出错的提示也是一样的:
消息 207,级别 16,状态 1,过程 deleteCate,第 7 行
列名 'cateId' 无效。
消息 207,级别 16,状态 1,过程 deleteCate,第 8 行
列名 'cateId' 无效。不知道是什么原因,请高手帮助改正.
create proc deleteCate(@cateId int )
as
delete from comment where newsId in (select newsId from news where cateId=@cateId)
delete from news where cateId=@cateId
delete from category where cateId=@cateId
其中表category中的cateId对应news表中的外键cateId , news表中的newsId对应comment表中的外键newsId,在执行过程中出错了,显示是:
消息 207,级别 16,状态 1,过程 deleteCate,第 3 行
列名 'cateId' 无效。
消息 207,级别 16,状态 1,过程 deleteCate,第 4 行
列名 'cateId' 无效。
如果创建一个触发器:
create TRIGGER [deleteCate]
ON [dbo].[category]
instead of DELETE
AS
declare @cateId int
select @cateId = cateId from deleted
delete from comment where newsId in (select newsId from news where cateId=@cateId )
delete from news where cateId=@cateId
delete from category where cateId=@cateId
那么出错的提示也是一样的:
消息 207,级别 16,状态 1,过程 deleteCate,第 7 行
列名 'cateId' 无效。
消息 207,级别 16,状态 1,过程 deleteCate,第 8 行
列名 'cateId' 无效。不知道是什么原因,请高手帮助改正.
as declare @sql varchar(2000)
begin
set @sql='delete from comment where newsId in (select newsId from news where cateId='''+@cateId+''')'
exec(@sql)
set @sql='delete from news where cateId='''+@cateId+''''
exec(@sql)
set @sql='delete from category where cateId='''+@cateId+''''
exec(@sql)end
delete from category where cateId=@cateId 这两句有错,这两个表中没有cateId列,检查一下吧。