有一个字段叫UserGuid,一开始我用的int让他自动增长的,现在我把int改成varchar(36),自动增长也删了,数据也删了,在下面写了(newid()),不知道怎么才能让UserGuid的值出来?

解决方案 »

  1.   

    SELECT ISNULL(MAX(CAST(USERGUID AS INT)),0)+1 FROM TABLE_NAME
    得到当前最大ID+1,不知道你说的是不是这个
      

  2.   

    好像不是,现在UserGuid字段都没有值,想让他有newid()自动生成的值
      

  3.   

    好像是我忘记设主键了,我又设了个主键说“UserInfo”表
    - 无法创建索引“PK_UserInfo”。  
    CREATE UNIQUE INDEX 终止,因为发现对象名称 'dbo.UserInfo' 和索引名称 'PK_UserInfo' 有重复的键。重复的键值为 ()。
    无法创建约束。请参阅前面的错误消息。
    语句已终止。不知道怎么办了
      

  4.   

    newid()是个列还是函数?列的话用计算列,在USERGUID 上加公式就可以,函数的话直接USERGUID =newid()就是了
      

  5.   


    alter table TABLE_NAME constraint DF_S default(newid()) for UserGuid
      

  6.   

    消息 156,级别 15,状态 1,第 1 行
    关键字 'constraint' 附近有语法错误。
      

  7.   

    alter table TABLE_NAME add constraint DF_S default(newid()) for UserGuid
      

  8.   

    一开始建了张表叫UserInfo,有个字段叫UserGUID,int,设置的自动增长,主键.现在改了,主键取消,int改成varchar,这个字段的数据全删除,自动增长删除,默认值或绑定设置的(newid()),但是UserGUID下面的应该自动生成的36位的数据却没有,怎么办?
      

  9.   

    奥 那你就建个新表a a的结构要和UserInfo一样 注意UserGUID 设置成默认newid()
    然后是重点
    insert into a(a,b,c)--注意UserGUID 别写进去(我假设你的UserInfo有 UserInfo a b c 四列)
    select a,b,c
    from  UserInfo
    --然后删除原来的表
    delete UserInfo
    --把A表改名为UserInfo
    exec sp_rename 'a','UserInfo'