怎么用代码创建存储过程不成功,过程请看:

bpfrom 2002-06-11 06:00:28
如果是一个存储过程,创建不会有问题,但是两个就不行,为什么?
...全文
56 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bpfrom 2002-06-11
  • 打赏
  • 举报
回复
例如:
如下数据:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[reptq3]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[reptq3]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[test]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[test]
GO

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO


CREATE PROCEDURE reptq3 @lolimit money, @hilimit money,
@type char(12)
AS
select pub_id, type, title_id, price
from titles
where price >@lolimit AND price <@hilimit AND type = @type OR type LIKE '%cook%'
order by pub_id, type
COMPUTE count(title_id) BY pub_id, type


GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

CREATE PROCEDURE test
@s varchar(20),
@str char(10)
AS
select @s,@str
select @str
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

注意:这段代码是SQL自己生成的,所以在SQL查询分析器下面成功执行,但是一旦用这段字符赋给一个str,
String str;
String err;

SqlCommand myCommand = new SqlCommand(str, myConnection);
myCommand.Connection.Open();
try{
myCommand.ExecuteNonQuery();
}catch(Exception e)
{ err=e.Message;}
myConnection.Close();

代码大致是这样,问题就是,提示GO附近出错,如果是单独的创建存储过程就没有这种问题,如下代码示例:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[test]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[test]
GO

CREATE PROCEDURE test
@s varchar(20),
@str char(10)
AS
select @s,@str
select @str



exhx 2002-06-11
  • 打赏
  • 举报
回复
你把代码贴出了我们看看才能知道为什么啊

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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