新手请教一个关于sql server的问题

if exists (select * from sysobjects where objectproperty(object_id('#jieguo'),'istable') = 1)
begin drop table #jieguo end
我在网上看到这个语句,起作用是检查数据库中是否存在一个名为#jieguo的表,如果存在,就删除,但是我试了试,却发现无法删除,请问一下这是为什么呢

表名以#开头的是临时表,不能用你这个语句。改成下面这样应该就可以了:

if exists(
    SELECT * 
    FROM tempdb.sys.sysobjects 
    WHERE id = OBJECT_ID(N'tempdb..#jieguo') AND type in (N'U')
)
begin
    drop table #jieguo;
end

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-06
语句没问题,检查一下你的表名称是不是jieguo
第2个回答  2014-02-06
你先检查一下这个表你是否有drop的权限,
相似回答