C# 识别sql server中的存储过程和表
我从用户那里得到一个SQL数据库连接字符串,然后我想检查数据库中的特定表或特殊存储过程 如何在C#中执行此操作?此操作的快捷方式是(在SQL中): 或 如果这些返回null(DBNull.Value),则该项不存在。否则,它会 因此,在C#中,这类似于: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
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");
}
}