SQL 服务器:说明临时 table 存在,但不在 INFORMATION_SCHEMA 中
SQL Server : stating temp table exists, but it's not in INFORMATION_SCHEMA
我正在使用以下内容检查并创建 table:
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'tempdb' AND TABLE_NAME LIKE '#tmp_items%')
CREATE TABLE #tmp_items
(
id INT IDENTITY(1,1),
inv_mast_uid INT DEFAULT NULL,
src_invoice BIT DEFAULT NULL,
src_invoice_date DATETIME DEFAULT NULL,
src_order BIT DEFAULT NULL,
src_order_date DATETIME DEFAULT NULL
)
ELSE
TRUNCATE TABLE #tmp_items
我收到以下错误:
There is already an object named '#tmp_items' in the database.
如果它存在,它应该截断 table....
当我查看 INFORMATION_SCHEMA
时,我什么也没看到:
SELECT DISTINCT TABLE_SCHEMA FROM INFORMATION_SCHEMA.TABLES
Returns:
ssb
UTIL
mbl
DataSync
dbo
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%tmp_items%'
Returns 没什么。
这没有意义,我不知所措...我什至断开了与服务器的连接(应该清除了临时 tables)并重新连接,但仍然得到相同的结果错误。
我是不是漏掉了什么?
无论您如何切片,您都将难以有条件地截断或创建像这样的临时文件 table。将其更改为删除临时 table(如果存在),然后始终创建它。这样就简单多了。
IF OBJECT_ID('tempdb..#tmp_items%') is not null
drop table #tmp_items
CREATE TABLE #tmp_items
(
id int identity(1,1),
inv_mast_uid int DEFAULT NULL,
src_invoice bit DEFAULT NULL,
src_invoice_date datetime DEFAULT NULL,
src_order bit DEFAULT NULL,
src_order_date datetime DEFAULT NULL
)
我正在使用以下内容检查并创建 table:
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'tempdb' AND TABLE_NAME LIKE '#tmp_items%')
CREATE TABLE #tmp_items
(
id INT IDENTITY(1,1),
inv_mast_uid INT DEFAULT NULL,
src_invoice BIT DEFAULT NULL,
src_invoice_date DATETIME DEFAULT NULL,
src_order BIT DEFAULT NULL,
src_order_date DATETIME DEFAULT NULL
)
ELSE
TRUNCATE TABLE #tmp_items
我收到以下错误:
There is already an object named '#tmp_items' in the database.
如果它存在,它应该截断 table....
当我查看 INFORMATION_SCHEMA
时,我什么也没看到:
SELECT DISTINCT TABLE_SCHEMA FROM INFORMATION_SCHEMA.TABLES
Returns:
ssb
UTIL
mbl
DataSync
dbo
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%tmp_items%'
Returns 没什么。
这没有意义,我不知所措...我什至断开了与服务器的连接(应该清除了临时 tables)并重新连接,但仍然得到相同的结果错误。
我是不是漏掉了什么?
无论您如何切片,您都将难以有条件地截断或创建像这样的临时文件 table。将其更改为删除临时 table(如果存在),然后始终创建它。这样就简单多了。
IF OBJECT_ID('tempdb..#tmp_items%') is not null
drop table #tmp_items
CREATE TABLE #tmp_items
(
id int identity(1,1),
inv_mast_uid int DEFAULT NULL,
src_invoice bit DEFAULT NULL,
src_invoice_date datetime DEFAULT NULL,
src_order bit DEFAULT NULL,
src_order_date datetime DEFAULT NULL
)