首页 新闻 赞助 找找看

SQL:可以帮我解释一下吗?有关sysobjects的

0
悬赏园豆:20 [已解决问题] 解决于 2012-11-19 12:21

可以通过以下途径判断某个表是否存在,有的话就执行删除:

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[表名]

可以帮我解释一下后半部分的语句吗:

id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
1.object_id是指什么,还有,为什么要这样写:object_id(N'[dbo].[表名]')
2.OBJECTPROPERTY是指什么,为什么要这样写:OBJECTPROPERTY(id, N'IsUserTable') = 1)

谢谢

KeenLeung的主页 KeenLeung | 初学一级 | 园豆:177
提问于:2012-11-18 17:20
< >
分享
最佳答案
1

select * from dbo.sysobjects,你就看到系统表。

在连接管理器里点“可编程性”-》“函数”-》“系统函数”-》“元数据函数”,你就能找到object_id和OBJECTPROPERTY

获得表ID和属性值

收获园豆:10
happydaily | 菜鸟二级 |园豆:301 | 2012-11-18 17:36

嗯嗯,非常感谢...

KeenLeung | 园豆:177 (初学一级) | 2012-11-18 17:38

我想继续问问,连接管理器是在哪的?我找了很久都没找到....thanks

KeenLeung | 园豆:177 (初学一级) | 2012-11-18 17:44

@KeenLeung: 这个问题压力大了啊。SQL2000叫企业管理器,SQL2005/2008叫SQL Server Management Studio Express,就是输入 SQL代码给你结果的那个。

happydaily | 园豆:301 (菜鸟二级) | 2012-11-18 18:02

@happydaily: 哦哦....我的是SQL2012,谢谢...

KeenLeung | 园豆:177 (初学一级) | 2012-11-18 18:46

@happydaily: 哦哦,自己装了都不知道原来那个叫“链接管理器”.....非常感谢你的帮助....

KeenLeung | 园豆:177 (初学一级) | 2012-11-18 18:53

@happydaily: 我想继续了解的是:“OBJECTPROPERTY(id, N'IsUserTable')”中的“IsUserTable”是哪来的?谢谢...

KeenLeung | 园豆:177 (初学一级) | 2012-11-18 19:09

@KeenLeung: http://zhidao.baidu.com/question/18436758.html

sql定义好的

happydaily | 园豆:301 (菜鸟二级) | 2012-11-19 09:01
其他回答(1)
1
收获园豆:10
chenping2008 | 园豆:9836 (大侠五级) | 2012-11-18 20:26

哦哦,非常感谢....

支持(0) 反对(0) KeenLeung | 园豆:177 (初学一级) | 2012-11-18 20:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册