当前位置: 首页 > 面试题库 >

检查SQL Server数据库表中是否存在表或列

赵昊阳
2023-03-14
问题内容

在SQL Server数据库中创建列或表之前,我想检查所需的表和/或列是否存在。

我到处搜索并找到2种方法。

  1. 存储过程,我不想使用
  2. 通过使用该SqlCommand.ExecuteScalar()方法并捕获异常来确定表/列是否存在,这对我来说是一个变通方法,但不是一个完美的解决方案。

还有另一种方法可以检查SQL Server中是否存在表/列吗?


问题答案:

要在创建架构之前检查其是否存在,请执行以下操作:

检查是否存在一列;您可以使用IF NOTEXISTS,然后将实际查询放入其中。

IF NOT EXISTS(SELECT * FROM sys.columns 
        WHERE [name] = N'columnName' AND [object_id] = OBJECT_ID(N'tableName'))
BEGIN
    ALTER TABLE ADD COLUMN MYCOLUMN
END

对于表,查询有点类似:

IF (NOT EXISTS (SELECT * 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_SCHEMA = 'TheSchema' 
                 AND  TABLE_NAME = 'TheTable'))
BEGIN
    CREATE TABLE MYTABLE
END


 类似资料:
  • 问题内容: 我正在尝试制作简单的Java代码,以检查MySQL DB中是否存在表和/或列。我应该使用Java代码进行检查还是生成一个SQL查询字符串并执行以进行检查? 编辑- @ aleroot- 我尝试使用您的代码,如下所示。运行以下代码时,我看不到任何表或列。我只看到这个 我的数据库有很多数据库,表和列。我不知道为什么该程序可以正常工作。 问题答案: 要检查表是否存在,可以按以下方式使用Dat

  • 问题内容: 我发现了很多与此问题有关的问题。 但是,有没有简单的语句可以完成此任务? 对于SQL和ACCESS 问题答案: sys.tables还可以为您提供有关表对象的一些信息,例如,列告诉您表是由复制创建的,还是列告诉您表是否设置了复制过滤器 注意:这是用于SQL Server 编辑:对于访问:

  • 问题内容: 我有一个嵌入了数据库的桌面应用程序。当我执行程序时,我需要检查特定的表是否存在,如果不存在则创建它。 给我的数据库一个名为conn的Connection对象,我该如何检查呢? 问题答案: 您可以使用可用的元数据: 有关更多详细信息,请参见此处。还要注意JavaDoc中的注意事项。

  • 问题内容: 我想知道如何检查数据库中的特定表(例如:myTable)中是否存在特定列(例如:日期)。 我已经阅读了此答案,该答案提供了一个查询,该查询导致另一个查询。 但是我需要的是结果。 更新1 如何在C#应用程序中做到这一点? 也许使用或其他? 问题答案: 感谢所有提供解决方案并收集了一些答案的人,我提出了自己的解决方案版本。也许这不是最好的解决方案,但是至少我不需要额外的dll来添加引用或处

  • 我需要验证表中是否已经存在列。我的类扩展了CustomTaskChange,因此我的方法接收一个数据库对象作为参数。我可以通过ResultSetObject进行我想要的验证吗?

  • 问题内容: 如何查看索引是否包含某些数字? 问题答案: 您将为此进行字符串比较 询问数字是否“在”另一个数字中并没有真正的意义(除非您对“在”具有特定的定义)