sql
  • vb.net
  • 2012-01-17 33 views 0 likes 
    0

    我有一個現在的存儲過程,現在需要在我的VB控制檯應用程序中用作內聯SQL語句。我該如何改變它?如何使用VB.Net將存儲過程更改爲內聯SQL語句?

    存儲過程:

    :Setvar CUSTOMDBNAME "My_DB" 
    
    USE [$(CUSTOMDBNAME)] 
    GO 
    
    DECLARE @TranName Varchar(25) 
    Declare @TranCounter Int 
    Set @TranName = 'MyTransaction'; 
    Set @TranCounter = @@Trancount; 
    
    BEGIN TRANSACTION @TranName; 
        BEGIN Try 
        UPDATE tbl.FileUpload 
        SET UserCreate= 1 
        WHERE ID = 10 
        IF @TranCounter=0 
         COMMIT TRANSACTION @TranName; 
        END Try 
        BEGIN Catch 
        IF @TranCounter = 0  
         Rollback Transaction; 
        ELSE 
        IF XACT_STATE() <> -1 
         Rollback Transaction @TranName; 
        END Catch 
    
    GO 
    
    +3

    爲什麼你必須將它改爲內聯SQL語句?你仍然可以從vb.net調用存儲過程,還是需要從應用程序中自定義生成零件? – Seph

    +0

    有什麼意義? – pistipanko

    +0

    這是要求的一部分。該存儲過程當前正在手動執行。通過控制檯應用程序,這需要是內聯sql。 – JADE

    回答

    0

    您可以訪問通過查詢sys.syscomments視圖存儲過程中的SQL服務器的文本。從那裏你可以提取文本,並做任何你想要的。

    有關如何訪問與存儲過程的不同方面有關的數據的詳細文檔,請訪問MSDN的Viewing Stored Procedures。它解釋瞭如何:

    • 請參閱存儲過程的定義。也就是說,用於創建存儲過程的Transact-SQL語句。如果您沒有用於創建存儲過程的Transact-SQL腳本文件,這會很有用。
    • 獲取有關存儲過程(如架構,存儲過程的創建時間及其參數)的信息。
    • 列出指定存儲過程使用的對象以及使用指定存儲過程的過程。這些信息可用於識別數據庫中更改或刪除對象所影響的過程。

    看起來像使用這些數據源,您將能夠獲得所需的數據,其餘的工作都是特定於實現的。

    此外,這裏是一個展示物品的使用情況進行查詢存儲過程文本:http://blog.sqlauthority.com/2007/09/03/sql-server-2005-search-stored-procedure-code-search-stored-procedure-text/

    相關問題