可以通过以下途径判断某个表是否存在,有的话就执行删除:
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)
谢谢
select * from dbo.sysobjects,你就看到系统表。
在连接管理器里点“可编程性”-》“函数”-》“系统函数”-》“元数据函数”,你就能找到object_id和OBJECTPROPERTY
获得表ID和属性值
嗯嗯,非常感谢...
我想继续问问,连接管理器是在哪的?我找了很久都没找到....thanks
@KeenLeung: 这个问题压力大了啊。SQL2000叫企业管理器,SQL2005/2008叫SQL Server Management Studio Express,就是输入 SQL代码给你结果的那个。
@happydaily: 哦哦....我的是SQL2012,谢谢...
@happydaily: 哦哦,自己装了都不知道原来那个叫“链接管理器”.....非常感谢你的帮助....
@happydaily: 我想继续了解的是:“OBJECTPROPERTY(id, N'IsUserTable')”中的“IsUserTable”是哪来的?谢谢...
@KeenLeung: http://zhidao.baidu.com/question/18436758.html
sql定义好的