识别sqlserver中的存储过程和表

本文关键字:存储过程 sqlserver 识别 | 更新日期: 2023-09-27 18:19:33

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

我如何在C#中做到这一点?

识别sqlserver中的存储过程和表

这方面的快捷方式是(在SQL中):

SELECT OBJECT_ID('tableName')

SELECT OBJECT_ID('storedprocedurename')

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