检查SQL表是否存在

2024-01-01

以独立于数据库的方式检查 Sql 数据库中是否存在表的最佳方法是什么?

我想出了:

   bool exists;
   const string sqlStatement = @"SELECT COUNT(*) FROM my_table";

   try
    {
       using (OdbcCommand cmd = new OdbcCommand(sqlStatement, myOdbcConnection))
       {
            cmd.ExecuteScalar();
            exists = true;
       }
    }
    catch
    {
        exists = false;
    }

有一个更好的方法吗?当数据库连接失败时,此方法将不起作用。我已经找到了适用于 Sybase、SQL Server、Oracle 的方法,但没有一种方法适用于所有数据库。


bool exists;

try
{
    // ANSI SQL way.  Works in PostgreSQL, MSSQL, MySQL.  
    var cmd = new OdbcCommand(
      "select case when exists((select * from information_schema.tables where table_name = '" + tableName + "')) then 1 else 0 end");

    exists = (int)cmd.ExecuteScalar() == 1;
}
catch
{
    try
    {
        // Other RDBMS.  Graceful degradation
        exists = true;
        var cmdOthers = new OdbcCommand("select 1 from " + tableName + " where 1 = 0");
        cmdOthers.ExecuteNonQuery();
    }
    catch
    {
        exists = false;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查SQL表是否存在 的相关文章

随机推荐

  • Cassandra数据复制问题

    我有一个 2 节点 cassandra 集群 复制因子为 2 并且 AutoBootStrap true 启动期间一切正常 两个节点都能看到对方 我们将这些节点称为 A 和 B 通过节点 A 将一组键和列 我们称之为 K1 添加到 cass
  • Swift 3:如何使用 AVVideoComposition 导出带有文本的视频

    我正在尝试使用AVVideoComposition在视频顶部添加一些文本并保存视频 这是我使用的代码 I 创建一个AVMutableComposition and AVVideoComposition var mutableComp AVM
  • 避免每次都执行 adb tcpip 5555

    我喜欢能够通过 WIFI 使用 ADB 来操作我的 Android 手机 通过 USB 连接后 我运行adb tcpip 5555 然后我可以断开 USB 并运行adb connect phone s IP 5555 我不喜欢的是 每次我必
  • 如何使用反应钩子获取网络摄像头?

    我正在尝试使用 React hooks 将网络摄像头源显示在我的应用程序上 我还需要能够从提要中捕获最新的图像 我相信我有基础 但缺少一些东西 import React useState useEffect from react expor
  • 如何在 dynamodb 本地执行更新

    目前我有 amazon dynamodb local 的本地图像 每当我尝试对数据库执行更新操作时 它都会创建一个重复行而不是更新现有记录 我的表定义是 TableName commission KeySchema AttributeNam
  • 禁用 Chromium“无法更新 Chromium”窗口通知

    我们在触摸屏 Linux 上以 kiosk 模式运行 Google Chromium 我们经常收到 无法更新 Chromium 窗口通知 我们还没有找到可以阻止这种情况的标志 有人有主意吗 这个Bug似乎四处飘荡Debian https b
  • “代表”发送电子邮件

    我收到了很多 代表 的电子邮件 例如 AddThis 插件代表从 addThis com 发送电子邮件 电子邮件受保护 cdn cgi l email protection 如何在 C ASP NET 中执行此操作 另外 如果我们使用 gm
  • Android 上视图背景颜色的动画变化

    如何在 Android 上以动画方式改变视图的背景颜色 例如 我有一个背景色为红色的视图 视图的背景颜色更改为蓝色 如何在颜色之间实现平滑过渡 如果无法通过视图来完成此操作 则欢迎使用替代方案 您可以使用新的属性动画 API http de
  • IList 构造函数参数和 AutoFixture

    Using 自动夹具 http autofixture codeplex com 我正在尝试构造匿名实例Project f new Fixture Customize new AutoMoqCustomization p f CreateA
  • 在 Django 中使用电子邮件地址或用户名登录用户

    我正在尝试创建一个身份验证后端 以允许我的用户使用他们的电子邮件地址或 Django 1 6 中的用户名和自定义用户模型登录 当我使用用户名登录时后端可以工作 但由于某种原因不能使用电子邮件登录 有什么我忘记做的事情吗 from djang
  • 我们可以使用亚马逊产品广告 API 只获取亚马逊 Prime 产品吗?

    我已经搜索了如何使用亚马逊产品广告 API 现在我可以使用亚马逊产品广告 API 搜索不同的产品 并且工作正常 但据我所知 我们只能从我们的帐户获得亚马逊 Prime 产品 当我使用亚马逊网站登录亚马逊帐户并搜索任何产品时 我只找到亚马逊
  • 根据 csv 文件的列名创建选择列表,以便在 Shiny 中绘图

    我正在尝试构建一个闪亮的应用程序 我可以在其中上传 csv 文件并根据列名称填充 ui 中左列 滑动栏列 上的复选框 根据为 y 轴选择的列和为 x 轴选择的列 需要能够使用 ggplot 创建图表 我的 ui R 看起来像这样 shiny
  • Google Calendar JavaScript api,将用户添加到具有“写入”访问权限的日历

    我正在开发一个与 Google 日历相关的网站 该网站使用 Google 的 JavaScript API 来检索公共日历的事件并将其呈现在网站上 我现在可以在我的网站上创建新活动 更新活动和删除活动 并且可以毫无问题地在 Google 日
  • 在 GCC 内联汇编中包装 CMPXCHG8B 的正确方法,32 位

    我正在尝试为 ia32 的 CMPXCHG8B 编写 GCC 内联汇编 不 我不能使用 sync bool compare and swap 它必须在有或没有 fPIC 的情况下工作 到目前为止我最好的 EDIT 毕竟不起作用 请参阅下面我
  • obj-c 委托模式在 C++ 中的等价物是什么?

    我对 objc 非常熟悉 现在我正在尝试深入研究 C 我正在寻找 obj c 委托模式的 C 等效项 您只需继承类 协议 而不是遵守协议 一个小例子 class Delegate public Some pure virtual metho
  • 集合 <__NSCFSet: 0x1b0b30> 在枚举时发生了变化。如何确定是哪一套?

    我正在执行一堆核心数据插入 在大约 20k 插入并每 1 2k 保存一次后 我收到此错误 Terminating app due to uncaught exception NSGenericException reason Collect
  • Spring-boot:注册 mongodb 自定义转换器

    我将此依赖项用于我的 Spring Boot 服务
  • 在php中如何使用preg替换将url变成tinyurl

    我需要将包含长 url 的文本字符串转换为相同的字符串 但带有tinyurl 使用tinyurl api 例如 转变 blah blah blah http example com news sport blah blah blah int
  • 如何合并数值模型和嵌入序列模型来处理 RNN 中的类别

    我想为我的分类特征构建一个带有嵌入的单层 LSTM 模型 我目前有数字特征和一些分类特征 例如位置 它不能进行单热编码 例如使用pd get dummies 由于计算复杂性 这正是我最初打算做的 让我们想象一个例子 样本数据 data us
  • 检查SQL表是否存在

    以独立于数据库的方式检查 Sql 数据库中是否存在表的最佳方法是什么 我想出了 bool exists const string sqlStatement SELECT COUNT FROM my table try using OdbcC