晕~~~怎么DROP不掉这个存储过程?什么原因?分析分析……

Kandy 2004-05-14 02:02:44
if object_id('pro_item_add') is not null drop procedure pro_item_add
GO
create procedure pro_item_add
@itemname varchar(100),@sort int,@class_s int,@sorttype int
as
if @itemname=''
return 1
else
if not exists(select * from item where itemname=@itemname)
begin
insert into item(itemname,sort,class_s,sorttype) values (@itemname,@sort,@class_s,@sorttype)
end
else
return 1
go

此存储过程没有问题,程序调用一切OK
第一次运行正常执行,第二次运行提示:
服务器: 消息 2714,级别 16,状态 5,过程 pro_item_add,行 65535
数据库中已存在名为 'pro_item_add' 的对象。

……没语言中……
单独运行:if object_id('pro_item_add') is not null drop procedure pro_item_add
GO
没有任何提示,刷新对象查看器中此存储过程仍然存在……

换成:IF EXISTS (SELECT name
FROM sysobjects
WHERE name = 'pro_item_add')

DROP PROCEDURE pro_item_add
GO
问题依旧…………
怎么回事?有人遇到这样的事了么?
...全文
213 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kandy 2004-06-08
  • 打赏
  • 举报
回复
自己解决的还是要送点分出去……哎……
Kandy 2004-05-14
  • 打赏
  • 举报
回复
为了省事,我把存储过程和触发器,包括数据库的创建,表的建立都写在一个.SQL的文件中了,我刚才试了一下,单独把存储COPY出来是能够运行的,是不是不能写在一起的原因造成的?因为创建了数据库以后USE 了一下数据库的名称,然后接下来是一堆触发器,最后在写存储……应该是这个原因导致出错,但是……怎么会提示:服务器: 消息 2714,级别 16,状态 5,过程 pro_item_add,行 65535
数据库中已存在名为 'pro_item_add' 的对象。

Kandy 2004-05-14
  • 打赏
  • 举报
回复
我也考虑过是不是在程序中调用了存储才导致出现这样的情况,我把把程序关了,然后将SQL SERVER的服务都STOP了然后重新START……还是这样子,NND,放在一起的还有触发器啊,都正常……
liuyun2003 2004-05-14
  • 打赏
  • 举报
回复
是不是你在某个地方又引用了这个存储过程阿?
Kandy 2004-05-14
  • 打赏
  • 举报
回复
是查询分析器中写滴~~写错了~55555555,怎么回事啊……
Kandy 2004-05-14
  • 打赏
  • 举报
回复
我是在对象查看器中写的那段存储……直接本机登录连接的……
楼上的,不行~
99831323 2004-05-14
  • 打赏
  • 举报
回复
if object_id('pro_item_add') is not null drop procedure pro_item_add
GO
-->

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[pro_item_add]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[pro_item_add]
GO

LoveSQL 2004-05-14
  • 打赏
  • 举报
回复
你检查一些对象的所有者,估计是所有者不同吧

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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