sqlcommand.commandtext有sql语句go的问题

FigoChoi 2007-01-11 12:06:41
我做了一段数据库的sql 语句
insert into .....

go

insert into ....

go

保存于一个文件。
当我在程序中点击一个按钮后,读出了这个文件的这些内容出来,并要用
sqlcommand更新到数据库里去,但点了更新后就出错,catch出来的话是第x行go附近有语法错误。但这段话在查询分析器里没有任何问题,如果把go去掉也没有任何问题,请问如何处理这个sql 的go呢?
...全文
367 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
no1zhangli 2012-04-01
  • 打赏
  • 举报
回复
顶,正在被这个问题困扰
yuandll 2008-06-21
  • 打赏
  • 举报
回复
如果是这样的语句呢
IF EXISTS (SELECT *
FROM sysobjects
WHERE name = N'<scalar_function_name, sysname, test_function>')
DROP FUNCTION <scalar_function_name, sysname, test_function>
GO

CREATE FUNCTION <scalar_function_name, sysname, test_function>
(<@param1, sysname, @p1> <data_type_for_param1, , int>,
<@param2, sysname, @p2> <data_type_for_param2, , int>)
RETURNS <function_data_type, ,int>
AS
BEGIN
<function_body, , RETURN @p1 + @p2 >
-- eg.
-- DECLARE @sum AS int
-- SELECT @sum = @p1 + @P2
-- RETURN @sum
END
GO
这个GO如何处理
FigoChoi 2007-01-16
  • 打赏
  • 举报
回复
用了string.split可以处理,问题是如果语句中有go,比如goto之类的,又会出错了
北京的雾霾天 2007-01-11
  • 打赏
  • 举报
回复
我倒没有试过用Split按go来分开后执行这样的语句,楼主可以试试用string.Split分开语句.
北京的雾霾天 2007-01-11
  • 打赏
  • 举报
回复
实际上这个go是几个语句的分隔符,
当有go的时候就把上一个go开始的语句一次性执行,
当在SqlCommand中执行的时候,可以先把带有go的语句脚本按go把它们分成一批批的分别执行就可以了.
nyzfl 2007-01-11
  • 打赏
  • 举报
回复
不要用go,用分号就可以表示是两条语句

------------------------
http://fenglin.xland.cn
------------------------
FigoChoi 2007-01-11
  • 打赏
  • 举报
回复
我随便举例的,其实我是想初始化一些存储过程进去客户的数据库里,所以在文件里有
create proc ...
...

go

create proc ...
...

go

如果要分段执行,那么不是要一个存储过程一个存储过程读出来执行,不是很麻烦??难道不能一次性地执行?
sqshine 2007-01-11
  • 打赏
  • 举报
回复
在程序里运行是不能加go的.你按go分段取出执行就可以了
FigoChoi 2007-01-11
  • 打赏
  • 举报
回复
顶下
FigoChoi 2007-01-11
  • 打赏
  • 举报
回复
主要是,如果不用go的话,连在查询分析器都执行不了的!因为create proc必须是第一句,所以如果是
create proc ...
..

create proc...
..
就出错了!肯定中间要有go才能执行
liq330 2007-01-11
  • 打赏
  • 举报
回复
如果任务中包含多个语句,那么可以将它们分组,然后可以一次执行一个批处理。为了标明批处理的结束,请使用 GO 命令。从一个 GO 命令到下一个 GO 命令的所有 SQL 语句都被发送到一个批处理,以便于 OLE DB 提供程序执行。
CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW 语句不能在批处理中与其它语句组合使用。批处理必须以 CREATE 语句开始。所有跟在该批处理后的其它语句将被解释为第一个 CREATE 语句定义的一部分。

所以在insert后面是可以不加go的.

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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