注册 登录
编程论坛 SQL Server论坛

求一存储过程

yxpke 发布于 2008-01-08 23:53, 1978 次点击
CREATE PROCEDURE aa
@sheetname nvarchar (10),
@xxcode nvarchar (11)
AS
execute('SELECT *  FROM  '+@SheetName+' where xxcode like '+@xxcode+'% order by xxcode' )

这个存储过程不对,问题在最后的%位置,不知如何处理,请高手帮忙
13 回复
#2
西风独自凉2008-01-09 08:18
'+@xxcode+%'
試下
#3
yxpke2008-01-09 09:29
还是不能,创建都不成立
#4
StrayInSky2008-01-09 10:36
CREATE PROCEDURE aa
@sheetname nvarchar (10),
@xxcode nvarchar (11)
AS
exec ('SELECT *  FROM  '+ @sheetname +' where xxcode like '+ @xxcode + '% order by xxcode')

我也是这样写的啊,没出问题。
有点奇怪哦
#5
StrayInSky2008-01-09 10:44
CREATE PROCEDURE aa
@sheetname nvarchar (10),
@xxcode nvarchar (11)= '%'
AS
execute('SELECT *  FROM  @SheetName where xxcode like @xxcode order by xxcode' )

使用带通配符的也行。。。
#6
yuxin13822008-01-09 11:25
必须声明变量 '@TABLE'。
ALTER PROC PROC_CX

   @TABLE CHAR(10),
   @ZDM   VARCHAR(10),
   @ZDM_1 CHAR(10)

AS

    SELECT * FROM @TABLE WHERE @ZDM_1 LIKE '%' + @ZDM + '%'
#7
西风独自凉2008-01-09 11:36
CREATE PROCEDURE aa
@Sheetname nvarchar (10),--是不是這個大小寫的問題
@xxcode nvarchar (11)
AS
execute('SELECT *  FROM  '+@SheetName+' where xxcode like '+@xxcode+'% order by xxcode' )
#8
StrayInSky2008-01-09 12:20
大小写没关系
#9
yuxin13822008-01-09 13:47
CREATE PROCEDURE aa
@sheetname nvarchar (10),
@xxcode nvarchar (11)
AS
execute('SELECT *  FROM  '+@SheetName+' where xxcode like'% '+@xxcode+'%'' order by xxcode' )
#10
XieLi2008-01-09 16:21
%是个字符要用单引号
#11
yxpke2008-01-09 17:50
本人已解决,以上的没有一个正确,虽然创建弹出语法正确,但运行时没有用,大家不妨试试,看来在这个数据库中能够真正使用存储过程的人还不是很多,用这个数据库的人如果仅仅懂得用一两条SQL语句是等于刚刚起步,我本人感到能够用这个数据库尽量多地用存储过程才是硬道理
#12
XieLi2008-01-10 08:20
一个好的存储过程,也是由好的SQL语句组成的~~~~

CREATE PROCEDURE aa
@sheetname nvarchar (10),
@xxcode nvarchar (11)
AS
execute('SELECT *  FROM  '+@SheetName+' where xxcode like '''+@xxcode+'%'' order by xxcode' )
#13
yxpke2008-01-10 09:00
楼12#,我是真的佩服您,您是一位不可多得的高手,只有这个存储过程才是正确的,我对您十分佩服了
#14
yuer12312008-01-16 09:43
CREATE PROCEDURE aa
@sheetname nvarchar (10),
@xxcode nvarchar (11)
AS
execute('SELECT *  FROM  '+@SheetName+' where xxcode like '''+@xxcode+'%'''+' order by xxcode')
1