SQLServer2000如何在程序中用代码判断表是否存在,望大侠多指点!

解决方案 »

  1.   

    if exists(select 1 from sysobjects where name = 'tablename')
     print 'yes'
    else
     print 'no'
      

  2.   

    mysql中创建不存在的表是用if not exists,不知道sqlserver中用什么可以代替它的功能!
      

  3.   

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

  4.   

    不好意思,刚刚吃饭去了,我在网上也查到了这句代码,但我不知道where 后面是什么意思——N'[dbo].[表名]'、N'IsUserTable'代表的是什么啊?
      

  5.   

    具体的,你可以查一下帮助。OBJECT_ID
    返回数据库对象标识号。语法
    OBJECT_ID ( 'object' )OBJECTPROPERTY
    返回当前数据库中对象的有关信息。语法
    OBJECTPROPERTY ( id , property ) 
      

  6.   

    OBJECT_ID('object')的参数好象是表名,但OBJECTPROPERTY(id,property)里面的'property'不知道是什么!
      

  7.   

    在SQLServer2000中如何用sql语句代替MySQL中的if not exists,创建不存在的表!
      

  8.   

    看一下系统pubs表的脚本代码就明白了。if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK__titleauth__au_id__0519C6AF]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
    ALTER TABLE [dbo].[titleauthor] DROP CONSTRAINT FK__titleauth__au_id__0519C6AF
    GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[authors]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[authors]
    GOCREATE TABLE [dbo].[authors] (
    [au_id] [id] NOT NULL ,
    [au_lname] [varchar] (40) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [au_fname] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [phone] [char] (12) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [address] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
    [city] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [state] [char] (2) COLLATE Chinese_PRC_CI_AS NULL ,
    [zip] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
    [contract] [bit] NOT NULL 
    ) ON [PRIMARY]
    GO
      

  9.   

    if exists语句中,object_id()和OBJECTPROPERTY()里面的参数是什么啊?
    还有,如果存在的话也不要drop这个表
      

  10.   

    其实最简单的是这样:use yourdb;
    goif object_id(N'tablename','U') is not null
    print '存在'
    else 
    print '不存在'
      

  11.   


    use yourdb;
    goif object_id(N'tablename',N'U') is not null
    print '存在'
    else 
    print '不存在'
      

  12.   

    USE [实例名]
    GOIF EXISTS  (SELECT  * FROM dbo.SysObjects WHERE ID = object_id(N'[表名]') AND OBJECTPROPERTY(ID, 'IsTable') = 1)
    PRINT '存在'
    ELSE
    PRINT'不存在'
      

  13.   

    仅仅判断是否存在不行啊
    if object_id(N'tablename',N'U') is not null
    print '存在'
    else 
    print '不存在'
    这语句也只能在查询分析器中运行,我要在程序中动态判断并创建!
      

  14.   


    use tempdb
    go 
    if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[authors]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)CREATE TABLE [dbo].[authors] (
        [au_id] [int] NOT NULL ,
        [au_lname] [varchar] (40) COLLATE Chinese_PRC_CI_AS NOT NULL ,
        [au_fname] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
        [phone] [char] (12) COLLATE Chinese_PRC_CI_AS NOT NULL ,
        [address] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
        [city] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
        [state] [char] (2) COLLATE Chinese_PRC_CI_AS NULL ,
        [zip] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
        [contract] [bit] NOT NULL 
    ) ON [PRIMARY]go
      

  15.   

    如果不存在就建立,否则什么都不做,上面代码是可以的
    创建authors表