Din*_*lla 4 sql sql-server select stored-procedures sql-server-2008
我需要生成6个字符长度的字母数字随机数,它应该包含数字,字母(小写和大写)检查下面的查询.
我需要实现功能.(在功能上可以使用NEWID(),RAND()).
SELECT SUBSTRING(CONVERT(VARCHAR(255), NEWID()),0,7)
Run Code Online (Sandbox Code Playgroud)
输出:
23647D
06ABA9
542191
.
.
.
Run Code Online (Sandbox Code Playgroud)
我需要输出为:
236m7D
3n64iD
6t4M7D
.
.
.
Run Code Online (Sandbox Code Playgroud)
在函数中我们不能使用NEWID()OR RAND()首先需要创建VIEW
对于功能
CREATE VIEW NewID as select newid() as new_id
DECLARE @new_id VARCHAR(255)
SELECT @new_id = new_id FROM newid
SELECT @Password = CAST((ABS(CHECKSUM(@new_id))%10) AS VARCHAR(1)) +
CHAR(ASCII('a')+(ABS(CHECKSUM(@new_id))%25)) +
CHAR(ASCII('A')+(ABS(CHECKSUM(@new_id))%25)) +
LEFT(@new_id,3)
SELECT @PASSWORD
Run Code Online (Sandbox Code Playgroud)
输出:
9eEF44
5uUFA2
7hHFA7
.
.
.
Run Code Online (Sandbox Code Playgroud)
对于Select Statement
DECLARE @new_id VARCHAR(200)
SELECT @new_id = NEWID()
SELECT CAST((ABS(CHECKSUM(@new_id))%10) AS VARCHAR(1)) +
CHAR(ASCII('a')+(ABS(CHECKSUM(@new_id))%25)) +
CHAR(ASCII('A')+(ABS(CHECKSUM(@new_id))%25)) +
LEFT(@new_id,3)
Run Code Online (Sandbox Code Playgroud)
输出:
0aAF3C
5pP3CE
2wW85E
.
.
.
Run Code Online (Sandbox Code Playgroud)