在MS SQL Server 2012中通过Java动态创建存储过程

时间:2014-11-21 21:55:54

标签: java sql-server stored-procedures

我需要从我的Java代码中动态创建存储过程。我搜索了任何类型的示例但是找不到任何东西。在互联网上我找到了很多关于如何运行存储过程的例子,但是我需要从我的代码创建它。我试图做的是:

    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());

但它没有用。任何建议?

2 个答案:

答案 0 :(得分:2)

GO不是您在此SQL / T-SQL代码中可以指定的内容 它仅适用于SQL Server Management Studio和其他特定工具 请勿在此处使用GO语句。

另见:

GO - SQL Server

  
    

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

  

答案 1 :(得分:1)

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

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