2012-01-05 2 views
0

ユーザーからSQLデータベース接続文字列を取得した後、データベース内の特定のテーブルまたは特別なストアドプロシージャをチェックしますか?ストアドプロシージャとテーブルをSQLサーバーで認識します

どのようにC#でこれを行うことができますか?

+0

。言い換えれば、データベースのスキーマ(テーブルなど)を照会しようとしていますか? – gideon

+0

この質問には、2つの部分があります。両方の部分があります:http://stackoverflow.com/questions/1266960/sql-query-to-search-schema-of-all-tables http://stackoverflow.com/questions/291574/query -to-list-sql-server-stored-procedures-with-with-for-each-pro – gideon

+0

シンプルなdbスキーマのクエリの例を参照してください。http://blog.sqlauthority.com/2007/ 06/26/sql-server-2005-list-all-tables-of-database / – gideon

答えて

1

このショートカットは、(SQLで)です:

SELECT OBJECT_ID('tableName') 

または

SELECT OBJECT_ID('storedprocedurename') 

これらの戻りヌル(DBNull.Valueのは)、その項目が存在しない場合。そうでなければ、そうする。

ので、C#で、それはのようになります。文法を編集

 using (var conn = new SqlConnection(connectionString)) 
     { 
      conn.Open(); 
      var cmd = new SqlCommand(); 
      cmd.Connection = conn; 
      cmd.CommandText = @"SELECT OBJECT_ID('" + MyObjectName + @"')"; 
      if (cmd.ExecuteScalar() == DBNull.Value) 
      { 
       Console.WriteLine("Does not exist"); 
      } 
      else 
      { 
       Console.WriteLine("Does exist"); 
      } 
     } 
関連する問題