我有一个存储过程,其中if else块中有两个INSERT INTO语句,一个发生在if中,另一个发生在else中,这样它们就不会冲突。但是在编译时,从它给出的else部分中的那个开始,已经有一个名为'#xxx‘的对象,尽管它前面有一条drop语句。 IF OBJECT_ID('tempdb..#xxx')
我试图写入一个临时表,源数据可以来自两个不同的源,但它们确实有相同的模式。如果只有一个条件语句可以执行,则由条件语句选择数据源,但sql似乎不喜欢这样做。它抱怨表已经存在。这是一段代码。Msg 2714,级别16,状态1,过程sp_xxx,第37行批处理开始行0数据库中已经有一个名为'#my_temp_table‘的对象。#my_temp_table ') IS NOT NULL
我正在尝试为Informix服务器编写带有ADD COLUMN子句的“可重用”SQL脚本。通常,我只能运行一次,因为之后该列已经存在,不能再添加。我不能简单地添加DROP column作为前一条语句,因为它会在第一次执行时失败。我需要像DROP COLUMN IF EXISTS这样的东西,但与删除其他SQL实体不同,它不适用于列。我可以通过以下方式查询系统表中是否存在该列: FROM "informix&
下面是我的代码片段。 我想根据一个变量过滤我的数据。 当我尝试运行代码时,它返回一个错误:“数据库中已经有一个名为'#BaseData‘的对象。”我不确定为什么会出现这种情况;如果临时表已经存在,我已经在IF语句中进行了额外的检查,以删除临时表,但无济于事。 您能提供帮助或提供替代解决方案吗?#BaseData') IS NOT NULL
DROP TABLE #BaseData
我不知道为什么会发生这种情况,我只是在SQLCMD模式激活的情况下检查语法,下面是我的代码。我尝试在创建临时表之前放置一个drop语句,但仍然不起作用Deployment script for XXXX
WHERE name = 'X'
-- Create temporary table to hold new items
C