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

删除临时表(如果存在)

葛威
2023-03-14
问题内容

朋友们,

我正在创建一个临时表。该脚本可能会运行几次,因此我需要检查临时表是否存在,然后将其删除。我已经在下面编写了代码,但是两次运行脚本时出现错误,表明该表已经存在:

数据库中已经有一个名为“#lu_sensor_name_19”的对象

IF OBJECT_ID('alarm..#lu_sensor_name_19') IS NOT NULL当Tablle不为null时,似乎不会返回true。我究竟做错了什么?

IF OBJECT_ID('alarm..#lu_sensor_name_19') IS NOT NULL 
BEGIN 
    DROP TABLE #lu_sensor_name_19 
END

CREATE TABLE #lu_sensor_name_19(
    sensorname_id int NOT NULL,
    sensorname nvarchar(50) NOT NULL,
    paneltype_id smallint NOT NULL,
    panel_version_id int NULL,
    prefix_allowed tinyint NOT NULL,
    base_allowed tinyint NOT NULL,
    suffix_allowed tinyint NOT NULL,
    key_value int NULL,
    sort_index int NULL,
    device_allowed tinyint NOT NULL,
    sensor_name_group_id smallint NOT NULL,
    )

问题答案:

Temp #Tables是在tempdb中创建的。试试这个:

IF OBJECT_ID('tempdb..#lu_sensor_name_19') IS NOT NULL 
BEGIN 
    DROP TABLE #lu_sensor_name_19 
END

CREATE TABLE #lu_sensor_name_19...

SQL Server 2016增加了在一行中完成删除的功能:

DROP TABLE IF EXISTS #lu_sensor_name_19

CREATE TABLE #lu_sensor_name_19...


 类似资料:
  • 问题内容: 我有一个脚本,它使用DROP TABLE IF EXISTS删除表的负载,这可以工作。 此脚本中还有一个删除操作,用于从我不管理的另一个表中删除一行。该表可能存在或不存在。是否有任何在尝试删除行之前检查该表是否存在? 这需要适用于MYSQL和SQLServer 谢谢亚历克斯 问题答案: 要签入SQL SERVER, 要检查mysql: 您只需数:

  • 问题内容: 我想知道如何/是否有可能删除所有临时表的查询? 我一直在尝试使用tempdb.sys.tables解决问题,但是正在努力格式化name列使其可以被删除- 另一个使事情变得棘手的因素是,temp表名称通常包含’_’意味着进行替换变得更麻烦了(至少对我而言!) 有什么我可以使用的方法,可以删除所有临时表(本地或全局),而不必分别删除所有临时表? 谢谢! 问题答案: 临时表的要点是它们是..

  • 问题内容: 请使用以下tsql查询: 我知道它在做什么,但是逻辑的最后一部分(对于每个重复集,在– insert一行之后)没有意义。在我们有用于删除所有重复行的代码集的地方,这消除了重复行,那么上一节的内容是什么? 该查询发现这里 谢谢 问题答案: 在我们有用于删除所有重复行的代码集的地方,这消除了重复行,那么上一节的内容是什么? 首先,它删除曾经有重复的所有行。也就是说,所有行,并且原始也。在上

  • 问题内容: 我正在从表单文本字段,并从复选框中的字段 我将它们像这样组合: (此函数在列表中的字符串内去除空格。) 但在这种情况下是空的(没有新的标签进入),但也有一些,包含一个空字符串。 例如,来自: 我如何摆脱空字符串? 如果列表中有一个空字符串: 但是,如果没有空字符串: 但这给出了: 为什么会发生这种情况,我该如何解决? 问题答案: 1)几乎是英式风格: 使用操作员测试是否存在,然后应用该

  • 我想创建一个文件;如果它已经存在,我想删除它并重新创建它。我尝试这样做,但它抛出一个Win32错误。我做错了什么?

  • 我有三个表,它们与下图相匹配: 我需要从join_表中删除一些数据,其中标签列(表右)和名称列(表左)符合一些条件。 我的解决方案是使用临时表: 我的问题是:有没有其他方法可以在不创建临时表的情况下执行此类删除?