本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
SQL Server临时表的正确删除方式(sql server 删除临时表)
makebo · 109浏览 · 发布于2023-06-14 +关注

临时表与一般的表不同,它是保存到tempDb表中。临时表的表名与你所建的表名也不一样,因为他要为不同人的相同操作创建不同的临时表。下文将为您分别示例正确和错误的删除操作,感兴趣的朋友一起看看吧

SQL Server临时表的正确删除方式

临时表与一般的表不同,它是保存到tempDb表中。临时表的表名与你所建的表名也不一样,因为他要为不同人的相同操作创建不同的临时表。下文将为您分别示例正确和错误的删除操作,供您参考。

删除SQL Server临时表和一般表并不相同,下面将为您为别示例错误和正确的删除操作,供您参考,希望对您能够有所帮助。

cd8207ce0de4b43b276e61f06e20159a_2023216113436714_202311611356.png

临时表与一般的表不同,它是保存到tempDb表中。临时表的表名与你所建的表名也不一样,因为他要为不同人的相同操作创建不同的临时表。

1、错误的删除操作:

--错误的临时表删除操作,因为所在数据库不同
IF EXISTS (SELECT * FROM sysobjects WHERE object_id = OBJECT_ID(N'[dbo].[#tempTable]')
 AND type in (N'U'))
Begin
DROP TABLE [dbo].[tempTable]
End
--错误的临时表删除操作,因为临时表名已变
if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'[#temptable]'))
Begin
drop table #temptable
End

2、正确的删除方式:

--正确的临时表删除操作
if object_id('tempdb..#tempTable') is not null Begin
drop table #tempTable
End

补充:SQL临时表的使用

关系型数据库支持临时表,这是一项很棒的功能。临时表的概念由 SQL Server 引入,用来存储和处理中间结果。

临时表在会话期间创建,会话结束后自动被删除。临时表可以和普通表一样执行各种操作,比如 SELECT、UPDATE、INSERT、JOIN 等。

MySQL 3.23 及其更高版本才支持临时表,如果您使用的 MySQL 版本低于 3.23,则不能使用临时表,但可以使用堆表(Heap Table)。

如前所述,临时表仅存在于会话期间。如果您使用 PHP 脚本连接数据库,当 PHP 执行完成后,临时表将被销毁。如果您使用 MySQL 客户端连接数据库,当客户端关闭后,临时表将被销毁。

创建临时表的基本语法如下:

CREATE TEMPORARY TABLE table_name(
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
   PRIMARY KEY( one or more columns )
);

您看,创建临时表的语法和普通表极其相似。临时表创建完成以后,可以使用 INSERT、DELETE、UPDATE、SELECT 等命令进行增删改查操作。

示例

本例向您展示临时表的用法:

mysql> CREATE TEMPORARY TABLE SALESSUMMARY (
   -> product_name VARCHAR(50) NOT NULL
   -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
   -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
   -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
Query OK, 0 rows affected (0.00 sec)
 mysql> INSERT INTO SALESSUMMARY
   -> (product_name, total_sales, avg_unit_price, total_units_sold)
   -> VALUES
   -> ('cucumber', 100.25, 90, 2);
 mysql> SELECT * FROM SALESSUMMARY;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
| cucumber     |      100.25 |          90.00 |                2 |
+--------------+-------------+----------------+------------------+
1 row in set (0.00 sec)

当您使用 SHOW TABLES 命令查看数据库中的表时,临时表将不会被显示。

现在,如果您退出 MySQL 会话,然后使用 SELECT 命令查找数据,您将在数据库中找不到任何有效数据,甚至连临时表也不存在。

删除临时表

默认情况下,当数据库连接终止时,MySQL 将删除所有的临时表。但是,如果您希望在会话期间删除它们,则可以使用 DROP TABLE 命令。

以下是删除临时表的示例:

mysql> CREATE TEMPORARY TABLE SALESSUMMARY (
   -> product_name VARCHAR(50) NOT NULL
   -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
   -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
   -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
Query OK, 0 rows affected (0.00 sec)
 mysql> INSERT INTO SALESSUMMARY
   -> (product_name, total_sales, avg_unit_price, total_units_sold)
   -> VALUES
   -> ('cucumber', 100.25, 90, 2);
 mysql> SELECT * FROM SALESSUMMARY;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
| cucumber     |      100.25 |          90.00 |                2 |
+--------------+-------------+----------------+------------------+
1 row in set (0.00 sec)
mysql> DROP TABLE SALESSUMMARY;
mysql>  SELECT * FROM SALESSUMMARY;
ERROR 1146: Table 'TUTORIALS.SALESSUMMARY' doesn't exist


sql

相关推荐

使用SELECT语句检索数据

奔跑的男人 · 808浏览 · 2019-06-03 09:33:43
部署MySQL延迟从库的几个好处

吴振华 · 671浏览 · 2019-05-14 21:57:51
MongoDB凭什么跻身数据库排行前五?

iamitnan · 726浏览 · 2019-06-18 10:04:56
Oracle开启和关闭的几种模式

qq2360248666 · 757浏览 · 2019-06-04 10:18:47
加载中

0评论

评论
没有最好,只有更好,一切都在路上!
分类专栏
小鸟云服务器
扫码进入手机网页