不好意思,还一个?
int型设为自动编码,最长只能四位,当数量到了,会报错吗?
int型设为自动编码,最长只能四位,当数量到了,会报错吗?
解决方案 »
- 统计汇总然后加分的问题
- 100分紧急求一SQL语句
- 求SQL语句
- 请教各位大师 SQL2K 4IN1装哪个好点 个人/标准/开发版???
- 中文sqlserver2000在windows2003英文版下显示乱码
- SQL 语句有时报错,在线等待
- 到底odbc ole ado ...关系如何,有点晕,请高手详解!!!
- 触发器和扩展存贮过程, 在线交流
- select取记录集时怎样只取前n条记录(假设有n+1条记录)
- 如何把数据库生成带数据的脚本,急!!!
- 用sql语句怎么格式化查询日期!
- 怎樣將形如 '2004-07-20 08:55:35.957'的日期時間 提取成 '2004-07-20' 或 '040720' 的格式﹗?
@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 行)
--*/
如用户名:admin,密码:123456.
就是:
insert into 表(username,password)
select 'admin',dbo.f_jmstr('123456','keystr')读的时候,再进行解密:
select username,dbo.f_jmstr(password,'keystr') from 表
where 条件