在MS SQL服务器中动态创建存储过程2012
问题描述:
我需要从我的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建议?
答
GO
在这段SQL/T-SQL代码中,您不能指定此处。
它只适用于SQL Server Management Studio和其他特定工具。
只是不要在这里使用GO
陈述。
参见:
GO不是Transact-SQL语句;它是由sqlcmd和osql实用程序和SQL Server Management Studio代码编辑器识别的命令。
答
GO语句在SQL Server Management Studio中使用,让您可以串起来一个通常来说是一系列的独立执行的语句。这允许您执行包含多个命令的脚本,这些命令必须是查询中的第一个语句,例如CREATE PROCEDURE。
如果您将语句拆分为字符串“\ nGO \ n”中的多个字符串并使用相同的连接按顺序执行它们,您将重现在SSMS中单击执行的行为。
你得到什么错误? – 2014-11-21 21:59:41
针对JDBC的Oracle Java教程提供了一个处理此确切事情的示例:http://docs.oracle.com/javase/tutorial/jdbc/basics/storedprocedures.html#create_jdbc_mysql – jpw 2014-11-21 22:04:06
您不构建查询,因此' executeQuery'将失败。 – 2014-11-21 22:08:35