1.
declare @sql nvarchar(400)
select @sql= 'select char(
'+cONVERT(NVARCHAR,CONVERT(INT,26*rand())+97)+ ')+
CHAR(
'+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ')+
CHAR(
'+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ')+
CHAR(
'+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ')+
CHAR(
'+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ')+
CHAR(
'+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ') '
print @sql
EXEC(@sql)
=====================================================
2.
declare @str varchar(10)
set @str = ' '
select
@str = @str + chr from
(select top 6 chr from (
select 'a ' as chr union all
select 'b ' union
all
select 'c ' union all
select 'd ' union all
select
'e ' union all
select 'f ' union all
select 'g '
union all
select 'h ' union all
select 'i ' union
all
select 'j ' union all
select 'k ' union all
select
'l ' union all
select 'm ' union all
select 'n '
union all
select 'o ' union all
select 'p ' union
all
select 'q ' union all
select 'r ' union all
select
's ' union all
select 't ' union all
select 'u '
union all
select 'v ' union all
select 'w ' union
all
select 'x ' union all
select 'y ' union all
select
'z '
) as a ORDER BY NEWID()) as t
----查看
select @str
==========================================
3.
DECLARE @myid varchar(1000)
SET @myid = NEWID()
select
CONVERT(varchar(6), @myid)
==========================================
4.
DECLARE @Below int
DECLARE @Up int
SELECT
@Below=65,@Up=90
SELECT CHAR(CAST(RAND()*(@Up-@Below)+@Below AS
decimal(38,0)))
+CHAR(CAST(RAND()*(@Up-@Below)+@Below AS
decimal(38,0)))
+CHAR(CAST(RAND()*(@Up-@Below)+@Below AS
decimal(38,0)))
+CHAR(CAST(RAND()*(@Up-@Below)+@Below AS
decimal(38,0)))
+CHAR(CAST(RAND()*(@Up-@Below)+@Below AS
decimal(38,0)))
+CHAR(CAST(RAND()*(@Up-@Below)+@Below AS
decimal(38,0)))
==========================================
5.
CREATE VIEW V_RAND AS SELECT RAND1 =
CONVERT(INT,RAND()*26),RAND2 = RAND()*2
GO
CREATE
FUNCTION DBO.f_GetRandNum(@LEN INT,@FLAG INT)
RETURNS
NVARCHAR(100)
AS
--@LEN 输出字符的长度
--@FLAG 返回值包含字符 1:大写字母
2:小写字母 3:大小写字母混合
BEGIN
DECLARE @SQL
NVARCHAR(100),@RAND INT
SELECT @SQL = ' '
IF
@LEN > 100
SET @LEN = 100
WHILE
@LEN > 0
BEGIN
SELECT @RAND = RAND1
+ (CASE @FLAG WHEN 1 THEN 65 WHEN 2 THEN 97
ELSE (CASE WHEN RAND2 > 1 THEN 97 ELSE 65
END) END)
FROM V_RAND
SELECT @SQL =
@SQL + CHAR(@RAND),@LEN = @LEN - 1
END
RETURN @SQL
END
GO
SELECT DBO.f_GetRandNum(7,3)