不好意思,还一个?
int型设为自动编码,最长只能四位,当数量到了,会报错吗?

解决方案 »

  1.   

    4是4 字节int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
      

  2.   

    --实现乱码的话,得自己加密/*--加/解密字符串
    @str 为加/解密的字符串
    @pwdstr 为加/解密字符串的密钥
    */
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_jmstr]') and xtype in (N'FN', N'IF', N'TF'))
    drop function [dbo].[f_jmstr]
    GOcreate function f_jmstr(@str varchar(8000),@pwdstr varchar(8000))
    returns varchar(8000)
    As
    begin
    declare @re varchar(8000)
    declare @i int

    select @i=len(@str),@re=''
    while len(@pwdstr)<@i
    set @pwdstr=@pwdstr+'123'+@pwdstr

    while @i>0
    select @re=
    nchar(unicode(substring(@str,@i,1))^unicode(substring(@pwdstr,@i,1)))
    +@re
    ,@i=@i-1 return(@re)
    endgo--调用例子
    select dbo.f_jmstr(dbo.f_jmstr('中国','中'),'中')
    --使用它来存储和读取数据的示例--测试的表
    declare @表 table(name varchar(10),pwd varchar(10))--插入数据
    insert @表 select '张三',dbo.f_jmstr('123','keystr')
    union all  select '李四',dbo.f_jmstr('345','keystr')--查看表中的内容
    select *
    ,解密后的内容=dbo.f_jmstr(pwd,'keystr')
    ,key错误的情况=dbo.f_jmstr(pwd,'abc')
    from @表/*--测试结果
    name       pwd        解密后的内容     key错误的情况   
    ---------- ---------- ---------- ---------- 
    张三         ZWJ        123        ;5)
    李四         XQL        345        93/(所影响的行数为 2 行)
    --*/
      

  3.   

    就是在往数据库里写之前,加密,在写入.
    如用户名:admin,密码:123456.
    就是:
    insert into 表(username,password)
    select 'admin',dbo.f_jmstr('123456','keystr')读的时候,再进行解密:
    select username,dbo.f_jmstr(password,'keystr') from 表
    where 条件