有个存储过程的问题要请教

pony_utc 2003-07-21 02:59:58
CREATE PROCEDURE sp_testdll AS

exec sp_addextendedproc 'SetFileName', 'storeproc.dll'
exec sp_addextendedproc 'addLine', 'storeproc.dll'

declare @szFileName varchar(200)
declare @szText varchar(200)
declare @rt int

Select @szFileName = 'c:\welcome.txt'

EXEC @rt = SetFileName @szFileName
if @rt = 0
begin
select @szText = 'welcome 01'
Exec @rt = addLine @szText
select @szText = 'welcome 02'
Exec @rt = addLine @szText

end
exec sp_dropextendedproc 'SetFileName'
exec sp_dropextendedproc 'addLine'

dbcc SetFileName(free)
dbcc addLine(free)
运行的时候出现
无法在 sysdepends 中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象 'SetFileName'。仍将创建该存储过程。
无法在 sysdepends 中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象 'addLine'。仍将创建该存储过程。
无法在 sysdepends 中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象 'addLine'。仍将创建该存储过程。

能告诉我为什么吗??
setFileName和addLine是我的扩展存储过程
...全文
43 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pony_utc 2003-07-21
  • 打赏
  • 举报
回复
to pengdali(大力 V2.0)
请问我把原来的改成
Create PROCEDURE sp_testdll AS

declare @szFileName varchar(200)
declare @szText varchar(200)
declare @rt int

Select @szFileName = 'c:\welcome.txt'

EXEC @rt = SetFileName @szFileName
if @rt = 0
begin
select @szText = 'welcome 01'
Exec @rt = addLine @szText
select @szText = 'welcome 02'
Exec @rt = addLine @szText

end
现在他还是出错啊
提示是不能在事务内部执行过程sp_addextendedproc,
未能找到存储过程SetFileName
语句已经中止
exec sp_addextendedproc 'SetFileName', 'storeproc.dll'
exec sp_addextendedproc 'addLine', 'storeproc.dll'
我已经提前执行了啊
happydreamer 2003-07-21
  • 打赏
  • 举报
回复
直接在过程里注册扩展存储过程的名称不行
pengdali 2003-07-21
  • 打赏
  • 举报
回复
exec sp_addextendedproc 'SetFileName', 'storeproc.dll'
exec sp_addextendedproc 'addLine', 'storeproc.dll'
go
CREATE PROCEDURE sp_testdll AS

declare @szFileName varchar(200)
declare @szText varchar(200)
declare @rt int

Select @szFileName = 'c:\welcome.txt'

EXEC @rt = SetFileName @szFileName
if @rt = 0
begin
select @szText = 'welcome 01'
Exec @rt = addLine @szText
select @szText = 'welcome 02'
Exec @rt = addLine @szText

end
go
exec sp_dropextendedproc 'SetFileName'
exec sp_dropextendedproc 'addLine'

dbcc SetFileName(free)
dbcc addLine(free)
pengdali 2003-07-21
  • 打赏
  • 举报
回复
exec sp_addextendedproc 'SetFileName', 'storeproc.dll'
exec sp_addextendedproc 'addLine', 'storeproc.dll'
go
CREATE PROCEDURE sp_testdll AS

declare @szFileName varchar(200)
declare @szText varchar(200)
declare @rt int

Select @szFileName = 'c:\welcome.txt'

EXEC @rt = SetFileName @szFileName
if @rt = 0
begin
select @szText = 'welcome 01'
Exec @rt = addLine @szText
select @szText = 'welcome 02'
Exec @rt = addLine @szText

end
go
exec sp_dropextendedproc 'SetFileName'
exec sp_dropextendedproc 'addLine'

dbcc SetFileName(free)
dbcc addLine(free)
BlackPoint 2003-07-21
  • 打赏
  • 举报
回复
下面两句中出现的 “SetFileName” 和 “addLine”被当作存储过程但是SQL中并没有找到这两个存储过程所以。。。
EXEC @rt = SetFileName @szFileName
Exec @rt = addLine @szText

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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