存储过程中可以调用其他存储过程吗?说明原因

存储过程中可以调用其他存储过程吗?说明原因,第1张

存储过程中可以调用其他存储过程。原因如下。存储过程创建后能在程序中被多次调用执行,而不必重新编写该存储过程的SQL语句。而且数据库或滑专业人员能随时对存储过程进行修改,但对应用程序源代码却毫无影响,从而极衫念腊大的提高了程序的可移高郑植性。

使用非SQL格式dll,也就是平时所写的,如果打死也不明白就用他就可以。

dll需要事先先注册,

注册是:regsvr32 名字.dll

卸载是:regsvr32 /u 名字.dll

[vb] view plain copy

CREATE TRIGGER [名称] ON [表名]

AFTER INSERT, UPDATE, DELETE

AS

DECLARE @hr int

DECLARE @obj int

DECLARE @out varchar(200)

exec @hr = sp_oacreate '[名称空间|工程名].[类名]', @obj out

IF @hr = 0

BEGIN

exec @hr = sp_oamethod @obj,'[函数名]',@out output,'[参数1]','[参数2]',...'[参数N]'

if @hr = 0

BEGIN

print @out

END

END

使用SQL格式的DLL

以下这代码要放到master数据库执行

[c-sharp] view plain copy

CREATE PORC [名字] AS

BEGIN

DECLARE @out varchar(200)

EXEC exec sp_addextendedproc '[函数名]', '[名称空间|工程名

.dll' --添加dll进来

EXEC @out = [函数名] [参数1] [参数2] ... [参数余携羡N] --注意:函数名前不能用@函数名和参数之间,参数和参数之间,不能用,,我用过,报错了...

EXEC exec sp_sp_dropextendedproc'[函数名]' --这里就是卸载了

直接执行外部程序,例如exe,黑客爱好这代码

上面的代码黑客也爱好,为什么?我才不会告诉你他喜欢用sp_addextendproc来加载xp_cmdshell

[c-sharp] view plain copy

--以下代码不是顺序执行竖拍,只是说明

EXEC sp_configure 'show advanced options', 1RECONFIGUREEXEC sp_configure 'xp_cmdshell', 1RECONFIGURE-- 开启xp_cmdshell,几乎不需要执行,多数人不会主要到

EXEC sp_configure 'show advanced options'隐陆, 1RECONFIGUREEXEC sp_configure 'xp_cmdshell', 0RECONFIGURE-- 这自然是关闭喽,要做啥非法事的话,就不要执行这句。

EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int --这句是如果不能执行xp_cmdshell时候,例如报127错误时修复使用

sp_addextendedproc 'xp_cmdshell','xpsql70.dll' -- 同上

--以下是使用xp_comshell

--有返回值

DECLARE @out int

EXEC @out = xp_cmdshell '[文件名]' '[参数1]' '[参数2]' ... '[参数N]'

无返回值

EXEC xp_comshenll'[文件名]' '[参数1]' '[参数2]' ... '[参数N]',no_output


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12564493.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存