存储过程的错误

dajiadebeibei9 2010-01-03 03:23:49
DELIMITER $$

CREATE
PROCEDURE `njue`.`pr_getAllProvider`()
BEGIN
select * from tb_provider where available!=0;
END$$

DELIMITER ;


数据库名是njue 这是里面的一段脚本 本人不知道如何在SQL2005中正确使用 因为直接运行会报错
哪位帮忙改正一下 谢谢了
...全文
97 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly0012008 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dajiadebeibei9 的回复:]
引用 2 楼 vivian_lanlan 的回复:
SQL codecreateproc dbo.pr_getAllProviderasselect*from tb_providerwhere available!=0;go--调用exec dbo.pr_getAllProvider


CREATE

    PROCEDURE `pr_searchGoods`(a varchar(50),b varchar(50))
 
    BEGIN
    DECLARE v_sql varchar(200);
    set v_sql=concat('select * from tb_goods where ',a,'=\'',b,'\' and available=1');
    SET @sql = v_sql;
    PREPARE sl FROM @sql;
    EXECUTE sl;
    DEALLOCATE PREPARE sl;
    END
这个是SQL的么!这段有问题么
[/Quote]

不是MS-SQL
ACMAIN_CHM 2010-01-03
  • 打赏
  • 举报
回复
楼主问的是MYSQL吧。
dajiadebeibei9 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 vivian_lanlan 的回复:]
SQL codecreateproc dbo.pr_getAllProviderasselect*from tb_providerwhere available!=0;go--调用exec dbo.pr_getAllProvider
[/Quote]

CREATE

PROCEDURE `pr_searchGoods`(a varchar(50),b varchar(50))

BEGIN
DECLARE v_sql varchar(200);
set v_sql=concat('select * from tb_goods where ',a,'=\'',b,'\' and available=1');
SET @sql = v_sql;
PREPARE sl FROM @sql;
EXECUTE sl;
DEALLOCATE PREPARE sl;
END
这个是SQL的么!这段有问题么
hchjjun 2010-01-03
  • 打赏
  • 举报
回复
数据库名后需要加一个DBO
-狙击手- 2010-01-03
  • 打赏
  • 举报
回复
CREATE PROCEDURE pr_name
AS
BEGIN
....

END
GO
abeniaj0427 2010-01-03
  • 打赏
  • 举报
回复
执行存储过程:


DECLARE @return_value int --返回值

EXEC @return_value = [dbo].[MyProcedure] --执行存储过程

SELECT 'Return Value' = @return_value --输出返回结果
abeniaj0427 2010-01-03
  • 打赏
  • 举报
回复
报的什么错误?正确的写法如下:

CREATE PROCEDURE proc_name
AS
BEGIN
SET NOCOUNT ON;
select * from tb_provider where available!=0;

END
GO
dajiadebeibei9 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 vivian_lanlan 的回复:]
这不是sql server的语法
[/Quote]

请问怎么改!
  • 打赏
  • 举报
回复
CREATE  PROCEDURE pr_getAllProvider    
BEGIN
select * from tb_provider where available!=0
END
vivian_lanlan 2010-01-03
  • 打赏
  • 举报
回复
create proc dbo.pr_getAllProvider
as
select * from tb_provider where available!=0;
go

--调用
exec dbo.pr_getAllProvider
vivian_lanlan 2010-01-03
  • 打赏
  • 举报
回复
这不是sql server的语法

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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