there is a stored procedure create procedure CreateHuman

plglenn34 2010-07-16 07:46:19
there is a stored procedure  
create procedure CreateHuman
(
@name nvarchar(20),
@body image output
)

if I use it ,should I type like this:

declare @tempBody image
exec CreateHuman
(
@name='abc' ,
@body=@tempBody output

)
...全文
71 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
王向飞 2010-07-16
  • 打赏
  • 举报
回复
这样会不会让别人更容易理解参数的含义
htl258_Tony 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 plglenn35 的回复:]
引用 4 楼 htl258 的回复:

引用 3 楼 plglenn35 的回复:
EXEC CreateHuman 'abc', @tempBody OUTPUT

这个不是更简洁么?

Yes

有的人为什么要多次一举呢?
[/Quote]
如果每个参数都赋值,可以省略,如果对于多参数的存储过程,只想根据需要输入部份参数(过程中相关变量参数需设置默认值),这种情况下,就需要显式指定参数对应的变量,从习惯角度来说,是好习惯,不能说是多此一举。
黄_瓜 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 plglenn35 的回复:]
引用 4 楼 htl258 的回复:

引用 3 楼 plglenn35 的回复:
EXEC CreateHuman 'abc', @tempBody OUTPUT

这个不是更简洁么?

Yes

有的人为什么要多次一举呢?
[/Quote]
当你不指定变量名字的时候可读性差呀。
plglenn35 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 htl258 的回复:]

引用 3 楼 plglenn35 的回复:
EXEC CreateHuman 'abc', @tempBody OUTPUT

这个不是更简洁么?

Yes
[/Quote]
有的人为什么要多次一举呢?
htl258_Tony 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 plglenn35 的回复:]
EXEC CreateHuman 'abc', @tempBody OUTPUT

这个不是更简洁么?
[/Quote]
Yes
plglenn35 2010-07-16
  • 打赏
  • 举报
回复
EXEC CreateHuman 'abc', @tempBody OUTPUT

这个不是更简洁么?
htl258_Tony 2010-07-16
  • 打赏
  • 举报
回复
--> 生成测试数据表: [tb]
IF OBJECT_ID('tb')>0
DROP TABLE tb
GO
CREATE TABLE [tb] ([name] [nvarchar](10),[body] [varbinary](max))
INSERT INTO [tb]
SELECT 'abc',0xabcdef0987654321 UNION ALL
SELECT 'cdb',0x89876748598599ab

--SELECT * FROM [tb]

-->SQL查询如下:


IF OBJECT_ID('CreateHuman')>0
DROP PROC CreateHuman
GO
CREATE PROCEDURE CreateHuman
@name NVARCHAR(20),
@body VARBINARY(MAX) OUTPUT
AS
SELECT @body=body FROM tb WHERE name = @name
GO
DECLARE @tempBody VARBINARY(MAX)
EXEC CreateHuman @name='abc', @body=@tempBody OUTPUT
SELECT @tempBody
/*
* ---------------------------
* 0xABCDEF0987654321

*(1 行受影响)
*/
SQL2K5 use VARBINARY(MAX)
obuntu 2010-07-16
  • 打赏
  • 举报
回复

exec CreateHuman ( @name='abc' , @body=@tempBody output )



改为declare

22,209

社区成员

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

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