----查看数据库中是否存在某一数据库CREATE PROCEDURE dbname
    @name  varchar(50) as 
begin
if (
select count(*) as co    
    from master.dbo.sysdatabases where name=@name
)=1
select 'SQL中存在'+'<'+@name+'>'+'数据库'
else 
select 'SQL中不存在'+'<'+@name+'>'+'数据库'end
exec dbname a

解决方案 »

  1.   

    select count(*)
    into @exist
    from sysobjects
    where xtype = 'u' and name = 'table-name'if @exist >0  ....
      

  2.   

    --楼主自己这个就是行了吗?IF OBJECTPROPERTY (object_id(@TableName),'ISTABLE') =0
    begin
       select @where1   
       exec ('select  * into '+ @TableName+' from CDR where 1<>1') 
    end
      

  3.   

    exec ('select  * into '+ @TableName+' from CDR where 1<>1') exec里面用字符串代替。
    如:declare @cSql Varchar(200)
    Select @cSql='select * into '+@TableName+'From CDR Where 1<>1'
    Exec(@cSql)
      

  4.   

    to 邹键:不可以啊,这张表明明不存在,但是也不执行到这一步;
    to 欧乐:exec ('select  * into '+ @TableName+' from CDR where 1<>1') 单独执行没有问题的
      

  5.   

    create   PROCEDURE usp_TableExist(
    @Msg int OUTPUT,
    @tablename VARCHAR(50))
    AS
    IF EXISTS (SELECT name FROM sysobjects
             WHERE name = @tablename AND type = 'U')
    begin
      set @Msg=1
    end
    else begin
      set @Msg=0
    end
      

  6.   

    这种情况可以得到:当@TableName已经存在
    OBJECTPROPERTY (object_id(@TableName),'ISTABLE') =1 
    可是当@TableName不存在
    OBJECTPROPERTY (object_id(@TableName),'ISTABLE') =0 或<>1 !=1 都得不到结果用old_brother的方法解决了,马上结贴
      

  7.   

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tabX]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[tabX]
    GOCREATE TABLE [dbo].[tabX] (
    [dept_no] [varchar] ,
    [person_no] [varchar] ,
    ..................GO