2014-11-21 105 views
1

我需要从我的Java.java代码中动态创建存储过程。我搜索了任何示例,但找不到任何东西。在互联网中,我发现了很多如何运行实例存储过程,但我需要从我code.What我试图做的创造,它是:在MS SQL服务器中动态创建存储过程2012

StringBuilder strbuild=new StringBuilder(); 
    strbuild.append("USE [ARGOS] \n"); 
    strbuild.append("GO\n"); 
    strbuild.append("SET ANSI_NULLS ON\n"); 
    strbuild.append("GO\n"); 
    strbuild.append("SET QUOTED_IDENTIFIER ON\n"); 
    strbuild.append("GO\n"); 
    strbuild.append("CREATE PROCEDURE [dbo].[sptest10] \n"); 
    strbuild.append("as select *\n");  
    strbuild.append("FROM [ARGOSCOPE].[dbo].[TableTmp2] \n"); 
    strbuild.append("GO\n"); 



    Statement stmt = myconnection.createStatement(); 
    ResultSet rs = stmt.executeQuery(strbuild.toString()); 

但事实并非如此work.Any建议?

+0

你得到什么错误? – 2014-11-21 21:59:41

+0

针对JDBC的Oracle Java教程提供了一个处理此确切事情的示例:http://docs.oracle.com/javase/tutorial/jdbc/basics/storedprocedures.html#create_jdbc_mysql – jpw 2014-11-21 22:04:06

+0

您不构建查询,因此' executeQuery'将失败。 – 2014-11-21 22:08:35

回答

2

GO在这段SQL/T-SQL代码中,您不能指定此处。
它只适用于SQL Server Management Studio和其他特定工具。
只是不要在这里使用GO陈述。

参见:

GO - SQL Server

GO不是Transact-SQL语句;它是由sqlcmd和osql实用程序和SQL Server Management Studio代码编辑器识别的命令。

1

GO语句在SQL Server Management Studio中使用,让您可以串起来一个通常来说是一系列的独立执行的语句。这允许您执行包含多个命令的脚本,这些命令必须是查询中的第一个语句,例如CREATE PROCEDURE。

如果您将语句拆分为字符串“\ nGO \ n”中的多个字符串并使用相同的连接按顺序执行它们,您将重现在SSMS中单击执行的行为。