导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

关于存储过程传参数问题

寒冰意志 2008-01-01 12:46:12
我写的一个PROC
CREATE PROCEDURE OrderSummary @MaxQuantity varchar(10) outPUT AS
select * from @MaxQuantity


以下是报错信息
服务器: 消息 137,级别 15,状态 2,过程 OrderSummary,行 2
必须声明变量 '@MaxQuantity'。

我想用存储过程 传一个 表名的 参数, 然后把这个表选择出来,
现在报错, 怎么改啊。
...全文
52 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
寒冰意志 2008-01-02
对呀,我觉得也是有问题.
我想做一个存储过程 用来生成编号 aa-200801-0001 就象是这样的格式,
因为有好几个表都要用到这样的编号 所以我设计的是这样的


CREATE PROCEDURE Test @prefix char(2), @TableName varchar(64),@column varchar(64)

通过传一个前缀,一个表名, 一个字段名, 取出这个表该这段最大的值加一的那个值,做为新增加记录的值

感觉这个方法不太爽, 不知道谁有更好的办法.
回复
gencheng 2008-01-02
虽然上面写的解决了你的问题,但个人觉的其实你问的这个问题本身反映了你的设计好像有问题.设计问题有时候比问题本身更重要.
回复
hui_hui_2007 2008-01-01

declare @str varchar(100)
set @str='select getdate()'
exec (@str)
回复
寒冰意志 2008-01-01
OK 多谢了, exec( ) 您帮我大忙了, 多谢多谢啊。
回复
pt1314917 2008-01-01

从上面的语句看不懂楼主想干吗,只好靠猜了.
CREATE PROCEDURE OrderSummary
@MaxQuantity varchar(10)
AS
exec('select * from ' + @MaxQuantity)

回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告