Мне нужно создать Хранимую процедуру динамически, из моего кода 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());
Но это не работает. Все предложения?
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.