(已建立返回值为一个整数,未建立则返回Null值) Tempdb 是表示存临时表的数据库 我们可在建立临时表前先用以下语句判断临时表是否已存在,当已存在时就删除该临时表。 if not (select object_id('Tempdb..#TempTable')) is null drop table #TempTable eg:if not (select object_id('Tempdb..#1234')) is null drop table #1234 写法更简单 三种功能是一样的 IF Exists (select * from tempdb.dbo.sysobjects where id=object_id(N'Tempdb..#1234')) drop table #1234 IF Exists (select * from tempdb..sysobjects where id=object_id(N'Tempdb..#1234')) EXECUTE('DROP TABLE #1234') 2.临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。 本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。 全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。 3.永久表 id = object_id(N'[dbo].[DH_SJMT]') if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DH_SJMT]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[DH_SJMT] 4. select * from dbo.sysobjects 查询永久表 名称。name/id/xtype 一般用户创建的 xtype='U' select [name] from tempdb..sysobjects 查询临时表 名称。name/id/xtype 一般用户创建的 xtype='U' 5。案例分析