=================SQL数据库,简单小问题。大虾来=======================

来源:百度知道 编辑:UC知道 时间:2024/05/18 04:25:58
declare @o int
exec sp_oacreate 'wscript.shell', @o out exec sp_oamethod @o, 'run', NULL, 'net user xxx xxx /add','0','true'

declare @cmd INT
exec sp_oacreate 'wscript.shell',@cmd output
exec sp_oamethod @cmd,'run',null,'net user xxx xxx /add','0','true'

declare @shell int
exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user xxx xxx
/add'

我数据库不好,@o @cmd @shell有何区别?

'0','true'有何意义?
第一句用了out,后两句用的是output,有什么区别

最后一句用了 c:\winnt\system32\cmd.exe /c
意思是什么,和没用有什么区别

一共3问对会数据库的人来说应该简单吧。
麻烦赐教!!

还有混分的,答非所问的~自重~

一、@o @cmd @shell 这三个是定义的变量名,后面为类型

二、out是output的缩写 表示为此参数为输出参数

三、是调用CMD.EXE,就是开始---附件---命令提示符。

四、'0'和'true' 都是字符串而已(按顺序赋给存储过程中的变量)

1、@o @cmd @shell有何区别?
-------------------------
@o
@cmd
@shell
---在批次相同时变量不能重复,三个变量一样意思,都是返回本机变数

2、0','true'有何意义?
第一句用了out,后两句用的是output,有什么区别

-------------
sp_oa--这个MS SQL的扩展存储过程,out/output是一样意思略写/完整写法

--'0','true'这都是传入参数
-------
3、最后一句用了 c:\winnt\system32\cmd.exe /c
意思是什么,和没用有什么区别
--------------------
传入的参数,执行的命令,由'wscript.shell'决定参数的意思。
# sp_OACreate 创建的对象.
# sp_OAGetProperty,获取属性值。
# sp_OASetProperty,设置属性值。
# sp_OAMethod,调用方法。
# sp_OAGetErrorInfo 获取最新的错误信息。
当不再需要对象时,调用 sp_OADestroy 释放使用 sp_OACreate 创建的对象实例。

OLE 自动化对象通过属性值和方法返回数据。而 sp_OAGetProperty 和 sp_OAMethod 以结果集的形式返回这些数据值。

OLE 自动化对象的作用域是一个批处理。对该对象