没有这种类型的字段
不过可以做一个触发器,一旦有select操作就触发,然后给一个int型的字段增加1(update该字段)

解决方案 »

  1.   

    我在mssql里新建一个触发器
    CREATE TRIGGER [TRIGGER NAME] ON [dbo].[news] 
    FOR INSERT, UPDATE, DELETE 
    AS
    到这里我不会了,请高人指教
      

  2.   

    触发器不支持select操作:)
    这样吧:
    你在news表中新增一个字段,nums:integer型的,用来累计用户点击的数目每当该表中有一条记录被select出来,那么根据该记录的id,update一下该记录的nums字段,使其值加1具体的程序你自己实现吧:)
      

  3.   

    只有像 jtmoon(逍遥小贼) 说得那样了
      

  4.   

    每当该表中有一条记录被select出来这个条件我不知道怎样实现,能给出一个简单的语句吗
      

  5.   

    php里面有自动增加的数据类型。在建表的工具中加一个字段,选择数据类型为decimal
    在标识栏里面选择是种子为1,其他的默认就可以了。
      

  6.   

    不要意思应该是
    sqlserver里面有自动增加的数据类型。在建表的工具中加一个字段,选择数据类型为decimal
    在标识栏里面选择是种子为1,其他的默认就可以了。
      

  7.   

    set rs=conn.execute ("select id,name,nums from tblname where name='"&varname&"'")
    id=Cint(rs("id"))
    nums=Cint(rs("nums"))+1
    conn.execute ("update tblname set nums="&nums&" where id="&id)这样就把你的nums加1了,conn是一个数据库连接对象,事先要设置好
      

  8.   

    你说的很象我们做的日志系统。每次用户查看的时候就写如日志。
    对于select操作没有触发器事件。所以不能用触发器。不过你可以写一个函数,在每次查询的时候调用。
    同时建一胀表维护你要监视的那些表。这个表的结构为table_set(table_name,table_value)
    分别表示所要监视的表的名称,和这个表被查询的当前次数。
    $query="select * from t1";
    $mydb->query($query);
    f_onselect('t1');function f_onselect($table_name)
    {
       global $sys_user,$sys_password,$sys_database,$sys_host;
       $conn=new DB_Sql();
       $conn->Host=$sys_host;
       $conn->User=$sys_user;
       $conn->Password=$sys_password;
       $conn->Database=$sys_database;
       $conn->connect(); 
       $query="update table_set table_value=table_value+1 where table_name=$table_name";
       $conn->query($query);
       return 1;
    }
      
    注意我的代码是用的phplib写的。$conn->query代表查询,
      

  9.   

    哈哈,搞错了,这里居然是PHP版,我上面的那段回复是用ASP写的,只能作为楼主的一种思路了,我不会PHP:(
    有时间还是找本书好好研究一下得好
      

  10.   

    $query="select * from t1";
    $mydb->query($query);
    f_onselect('t1');function f_onselect($table_name)
    {
       global $sys_user,$sys_password,$sys_database,$sys_host;
       $conn=new DB_Sql();
       $conn->Host=$sys_host;
       $conn->User=$sys_user;
       $conn->Password=$sys_password;
       $conn->Database=$sys_database;
       $conn->connect(); 
       $query="update table_set table_value=table_value+1 where table_name=$table_name";
       $conn->query($query);
       return 1;
    }
      

  11.   

    phplib就是一个连接数据库的类。如下你可以通过看这写类的方法了解上面代码的意思
    <?php
    class DB_Sql {
      var $Host     = "";
      var $Database = "";
      var $User     = "";
      var $Password = "";  var $Link_ID  = 0;
      var $Query_ID = 0;
      var $Record   = array();
      var $Row      = 0;
      
      var $Errno    = 0;
      var $Error    = "";  var $Auto_Free = 0;     ## set this to 1 to automatically free results
      
      
      function connect() {
        if ( 0 == $this->Link_ID ) {
          $this->Link_ID=mssql_pconnect($this->Host, $this->User, $this->Password);
          if (!$this->Link_ID)
            $this->halt("Link-ID == false, mssql_pconnect failed");
          else
           mssql_select_db($this->Database, $this->Link_ID);
        }
      }
      function free_result(){
      mssql_free_result($this->Query_ID);
       $this->Query_ID = 0;
      }
      
      function query($Query_String) {
       if (!$this->Link_ID)
         $this->connect();
        
    #   printf("<br>Debug: query = %s<br>\n", $Query_String);
        
        $this->Query_ID = mssql_query($Query_String, $this->Link_ID);
        $this->Row = 0;
        if (!$this->Query_ID) {
          $this->Errno = 1;
          $this->Error = "General Error (The MSSQL interface cannot return detailed error messages).";
          $this->halt("Invalid SQL: ".$Query_String);
        }
        return $this->Query_ID;
      }
      
      function next_record() {
      
        if ($this->Record = mssql_fetch_row($this->Query_ID)) {
          // add to Record[<key>]
          $count = mssql_num_fields($this->Query_ID);
          for ($i=0; $i<$count; $i++){
           $fieldinfo = mssql_fetch_field($this->Query_ID,$i);
            $this->Record[strtolower($fieldinfo->name)] = $this->Record[$i];
          }
          $this->Row += 1;
          $stat = 1;
        } else {
          if ($this->Auto_Free) {
         $this->free_result();
       }
          $stat = 0;
        }
        return $stat;
      }
      
      function seek($pos) {
    mssql_data_seek($this->Query_ID,$pos);
       $this->Row = $pos;
      }  function metadata($table) {
        $count = 0;
        $id    = 0;
        $res   = array();    $this->connect();
        $id = mssql_query("select * from $table", $this->Link_ID);
        if (!$id) {
          $this->Errno = 1;
          $this->Error = "General Error (The MSSQL interface cannot return detailed error messages).";
          $this->halt("Metadata query failed.");
        }
        $count = mssql_num_fields($id);
        
        for ($i=0; $i<$count; $i++) {
         $info = mssql_fetch_field($id, $i);
          $res[$i]["table"] = $table;
          $res[$i]["name"]  = $info["name"];
          $res[$i]["len"]   = $info["max_length"];
          $res[$i]["flags"] = $info["numeric"];
        }
        $this->free_result();
        return $res;
      }
      
      function affected_rows() {
        return mssql_affected_rows($this->Query_ID);
      }
      
      function num_rows() {
        return mssql_num_rows($this->Query_ID);
      }
      
      function num_fields() {
        return mssql_num_fields($this->Query_ID);
      }
     
      function nf() {
        return $this->num_rows();
      }
      
      function np() {
        print $this->num_rows();
      }
      
      function f($Field_Name) {
        return $this->Record[strtolower($Field_Name)];
      }
      
      function p($Field_Name) {
        print $this->f($Field_Name);
      }
      
      function halt($msg) {
        printf("</td></tr></table><b>Database error:</b> %s<br>\n", $msg);
        printf("<b>MSSQL Error</b>: %s (%s)<br>\n",
          $this->Errno,
          $this->Error);
        die("Session halted.");
      }
    }
    ?>
      

  12.   

    每当该表中有一条记录被select出来这个条件我不知道怎样实现,能给出一个简单的语句吗
      

  13.   

    个人建议你在SQL SERVER里面建立一个触发器,每当表有INSERT操作的
    时候触发,并给你要求的那个字段设置默认值,比如0。然后每一次INSERT
    都会增加一个该字段为0的行。
    触发器里面先读取该字段最大值,然后将这个值加一以后UPDATE到该字段为
    0的那一行里面。代码我就不写了:)
      

  14.   

    还是好人做到底吧:)触发器代码:假设表名为userinfo,id有默认值0create trigger my_trigger on userinfo
    after insert
    as
    begin
    declare @maxid as int
    declare @nextid as int
    select @maxid=max(id) from userinfo
    set @nextid=@maxid + 1
    update userinfo set id = @nextid where id = 0
    end