如何判断数据库中是否存在某一名字的表
我要进行多表连接查询 ,所以在数据库中创建一张表用于存放查询结果,对查询结果进行分析统计后 将刚刚创建的表删去. 那么我在创建表的时候怎么判断数据库中已经存在同样名字的表呢?(sqlserver数据库) 问题点数:40、回复次数:10Top
1 楼_jfeng(静心)回复于 2005-06-02 13:52:46 得分 10
select count(*) from sysobjects where name = '你的表名'
大于0 为有Top
2 楼zhongwanli(㊣【为了老婆,二次重构____然后升★★】㊣)回复于 2005-06-02 14:00:58 得分 0
lou shangTop
3 楼hedonister(冰戈)回复于 2005-06-02 14:04:09 得分 10
楼上的有点问题,要是刚好有张视图跟这张表同名怎么办?
加个条件xtype = 'U'
select count(*) from sysobjects where xtype = 'U' and name = '你的表名'Top
4 楼whmroseman(非哥)回复于 2005-06-02 14:11:28 得分 10
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)Top
5 楼redmoonmoon(阿卓)回复于 2005-06-02 14:13:13 得分 0
说的都好清楚噢Top
6 楼fangxinggood(JustACoder)回复于 2005-06-02 14:16:13 得分 10
用Sql可以完成你的要求啊。
Oracle :
Create or Replace view v as ( ... )
创建或者替换原有的视图。我认为sqlserver应该也有这样的语法。Top
7 楼whmroseman(非哥)回复于 2005-06-02 14:16:26 得分 0
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[视图名]') and OBJECTPROPERTY(id, N'IsView') = 1)
Top
8 楼whmroseman(非哥)回复于 2005-06-02 14:18:56 得分 0
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[存储过程名]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)Top
9 楼whmroseman(非哥)回复于 2005-06-02 14:24:53 得分 0
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[自定义函数]') and xtype in (N'FN', N'IF', N'TF'))
Top
10 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-06-02 14:33:05 得分 0
OpenSchemaTop




