如何使用VB.Net将存储过程更改为内联SQL语句?

时间:2012-01-17 07:50:53

标签: sql vb.net

我的现有存储过程现在需要在我的VB控制台应用程序中用作内联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

1 个答案:

答案 0 :(得分:0)

您可以通过查询sys.syscomments视图来访问SQL Server存储过程的文本。从那里你可以提取文本并用它做任何你想做的事情。

MSDN上Viewing Stored Procedures提供了有关如何访问与存储过程的不同方面相关的数据的大量文档。它解释了如何:

  • 请参阅存储过程的定义。也就是说,用于创建存储过程的Transact-SQL语句。如果您没有用于创建存储过程的Transact-SQL脚本文件,这将非常有用。
  • 获取有关存储过程的信息,例如其架构,创建时及其参数。
  • 列出指定存储过程使用的对象以及使用指定存储过程的过程。此信息可用于标识受更改或删除数据库中对象影响的过程。

似乎使用这些数据源,您将能够获得所需的数据,其余工作是特定于实现的。

此外,这篇文章演示了查询SPROC文本的用例:http://blog.sqlauthority.com/2007/09/03/sql-server-2005-search-stored-procedure-code-search-stored-procedure-text/