执行存储过程后得到某个表 TB  ,如何判断此表是否存在字段名为 001 的字段,请高手指教。

解决方案 »

  1.   

    $con = mysql_connect("localhost", "root", "");$db_selected = mysql_select_db("test",$con);$sql   = "SHOW   COLUMNS   FROM   test ";
    $result   =   mysql_query($sql);
    while($row=mysql_fetch_array($result,MYSQL_ASSOC))   {
    $array[]=$row[Field];

    if(in_array('001',$array)) echo '存在';
    else echo '不存在';
      

  2.   

    连接的是MSSQL,不是MYSQL,已经执行过一次查询得到的临时表。要如何判断这个临时表是否存在这个字段?
      

  3.   

    $rs = mysql_query("DESCRIBE TB `001`");
    if(mysql_num_rows($rs)) echo '存在';
    奇怪的字段名!
      

  4.   

    将 mysql_ 前缀换成 mssql_    试试。
      

  5.   

    如果有查询syscolumns   表的权限 那么就执行这个SQL语句。 select * from syscolumns where   id=object_id('表名')   and  name= '字名'
    如果没有的话 就只能用错误 去判断了。
      

  6.   

    这个方法不行。看不明白你这句SQL语句是什么意思。我是通过执行存储过程得到表TB,要对TB表进行判断是否存在001字段,这个是排序的列值,进行列转换成行的结果,不奇怪哈。
      

  7.   

    我是通过执行存储过程得到表TB,要对TB表进行判断是否存在001字段,尽量避免再次对数据库库进行再次操作。看能否在结果中进行判断
      

  8.   

    楼主可能执行的是sp_columns存储过程,
    如果不是的话也不要紧,因为里面总有一个是代表field name字段的。
    可以把执行结果保存成array,再在array中查找
      

  9.   

    我执行的是简单的 exec 存储过程,得到某表TB,你说怎么将表字段保存到array里?再进行查找?能举个例子详加说明么?
      

  10.   

    $bool = false;
    $sql = "sp_columns [table]";
    $result = sqlsrv_query($conn,$sql);
    while($row = sqlsrv_fetch_array($result))
    {
      if($row['COLUMN_NAME'] == '001'){
         $bool = true;//有001字段
         break;
      }
    }if($bool === true){
      .../有001字段要處理的代碼
    }
      

  11.   

    楼上的这个方法是可以,可惜我的TB表是临时表,在存储过程中创建的临时表,执行完后临时表已经删除了。TB表也不存在了,有没有其他方法?我的联系方式:317516596,麻烦你联系我下,谢谢了!
      

  12.   

    郁闷,Output输出也是个表,PHP没法都读取到。有什么方法可以去取,问题如:
    http://topic.csdn.net/u/20120605/15/38fd42dd-c84a-46c2-b27e-02e3fb2dd405.html?seed=611658605&r=78775230#r_78775230
      

  13.   

    $rs = mysql_query("DESCRIBE TB `001`");
    if(mysql_num_rows($rs)) echo '存在';
      

  14.   


    MSSQL没你这个语法,我查的是临时表,存储过程执行完后表就不存在了。请问有什么好的办法,不在对表进行查询,或者在存储过程中使用OUTPUT输出列值也行。