C# 识别sql server中的存储过程和表

C# 识别sql server中的存储过程和表,c#,sql,database,C#,Sql,Database,我从用户那里得到一个SQL数据库连接字符串,然后我想检查数据库中的特定表或特殊存储过程 如何在C#中执行此操作?此操作的快捷方式是(在SQL中): 或 如果这些返回null(DBNull.Value),则该项不存在。否则,它会 因此,在C#中,这类似于: using (var conn = new SqlConnection(connectionString)) { conn.Open(); var cmd = ne

我从用户那里得到一个SQL数据库连接字符串,然后我想检查数据库中的特定表或特殊存储过程

如何在C#中执行此操作?

此操作的快捷方式是(在SQL中):

如果这些返回null(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");
            }
        }

编辑语法。换句话说,您是否正在尝试查询数据库的模式(表等)?此问题分为两部分,都是重复的:另请参见此处的简单db模式查询示例:
SELECT OBJECT_ID('storedprocedurename')
        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");
            }
        }