2014-11-21 72 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中單擊執行的行爲。