【问题标题】:Calling sp_rename ( or other sp_ ) for SQL server 2008 from .Net Code从 .Net 代码调用 SQL Server 2008 的 sp_rename (或其他 sp_ )
【发布时间】:2010-05-03 00:58:12
【问题描述】:

是我将 sp_rename 或类似内容包装到存储过程中的唯一选择,然后

sqlCommand.CommandType = System.Data.CommandType.StoredProcedure;
sqlCommand.ExecuteNonQuery();

【问题讨论】:

    标签: c# .net sql-server-2005 stored-procedures


    【解决方案1】:

    sp_rename 一个存储过程,所以你应该可以像其他任何人一样调用它...

    【讨论】:

      【解决方案2】:

      当您直接调用它时(即不将其包装在另一个存储过程中),您会遇到什么错误?

      【讨论】:

      • 其实我还没试过。所以你建议 sp_rename 将被视为 selectCmd.CommandType = System.Data.CommandType.Text;
      • 我真傻。不知何故我错过了 sp_rename 只是一个存储过程。
      • @MicMit 它是master中的一个存储过程,但是任何你调用的以sp_为前缀的存储过程的类型,都会首先搜索master,然后是连接上的当前数据库。主 SP 通常作用于当前数据库中的对象,这是它们最有用的能力之一。数据库中的普通 SP 如果不符合数据库的条件,则作用于 SP 所在的数据库中的对象。
      【解决方案3】:

      只要您连接到数据库的用户帐户有权调用sp_rename,就没有理由不能像任何其他存储过程一样调用它:

      var connString = ...
      using ( var conn = new SqlConnection( connString ) )
      {
          using ( var cmd = new SqlCommand( "exec sp_rename 'Table_1', 'Table_2'", conn ) )
          {
              conn.Open();
              cmd.ExecuteNonQuery();
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-30
        • 2015-07-27
        相关资源
        最近更新 更多