时间:2023-10-26来源:系统城装机大师作者:佚名
临时表与一般的表不同,它是保存到tempDb表中。临时表的表名与你所建的表名也不一样,因为他要为不同人的相同操作创建不同的临时表。下文将为您分别示例正确和错误的删除操作,供您参考。
删除SQL Server临时表和一般表并不相同,下面将为您为别示例错误和正确的删除操作,供您参考,希望对您能够有所帮助。
临时表与一般的表不同,它是保存到tempDb表中。临时表的表名与你所建的表名也不一样,因为他要为不同人的相同操作创建不同的临时表。
1 2 3 4 5 6 7 8 9 10 |
--错误的临时表删除操作,因为所在数据库不同 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 |
1 2 3 4 |
--正确的临时表删除操作 if object_id( 'tempdb..#tempTable' ) is not null Begin drop table #tempTable End |
关系型数据库支持临时表,这是一项很棒的功能。临时表的概念由 SQL Server 引入,用来存储和处理中间结果。
临时表在会话期间创建,会话结束后自动被删除。临时表可以和普通表一样执行各种操作,比如 SELECT、UPDATE、INSERT、JOIN 等。
MySQL 3.23 及其更高版本才支持临时表,如果您使用的 MySQL 版本低于 3.23,则不能使用临时表,但可以使用堆表(Heap Table)。
如前所述,临时表仅存在于会话期间。如果您使用 PHP 脚本连接数据库,当 PHP 执行完成后,临时表将被销毁。如果您使用 MySQL 客户端连接数据库,当客户端关闭后,临时表将被销毁。
创建临时表的基本语法如下:
1 2 3 4 5 6 7 8 |
CREATE TEMPORARY TABLE table_name( column1 datatype, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY ( one or more columns ) ); |
您看,创建临时表的语法和普通表极其相似。临时表创建完成以后,可以使用 INSERT、DELETE、UPDATE、SELECT 等命令进行增删改查操作。
本例向您展示临时表的用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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 命令。
以下是删除临时表的示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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 Server临时表的正确删除方式(sql server 删除临时表)的文章就介绍到这了
2023-10-27
windows11安装SQL server数据库报错等待数据库引擎恢复句柄失败解决办法2023-10-27
SQL Server截取字符串函数操作常见方法2023-10-27
浅谈SELECT *会导致查询效率低的原因收缩数据文件通过将数据页从文件末尾移动到更靠近文件开头的未占用的空间来恢复空间,在文件末尾创建足够的空间后,可取消对文件末尾的数据页的分配并将它们返回给文件系统,本文给大家介绍SQL Server 数据库中的收缩数据...
2023-10-27