我需要在我的資料庫中插入隨機資料進行測驗,并且需要生成一個 27 個字符長的數字字串(可以從 0 開始)。
我一直在研究,NEWID()但它也包含字母,對于NEWSEQUENTIALID().
到目前為止,我的方法是創建一個 while 回圈,隨機生成每個數字并將其連接起來,但這似乎是一種非常緩慢的方法。
我正在使用 MSSQL 2014。
uj5u.com熱心網友回復:
一種可能的解決方案,基于這種方法(使用CHECKSUM()和NEWID()):
CREATE TABLE TestTable(RandomNumber varchar(27))
DECLARE @length int = 27
;WITH rCTE AS (
SELECT 1 AS n
UNION ALL
SELECT n 1
FROM rCTE
WHERE n < @length
)
INSERT INTO TestTable(RandomNumber)
VALUES ((SELECT ABS(CHECKSUM(NEWID())) % 10 FROM rCTE FOR XML PATH('')))
-- For SQL Server 2017
-- VALUES ((SELECT STRING_AGG(ABS(CHECKSUM(NEWID())) % 10, '') FROM rCTE))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/361406.html
標籤:sql-server 细绳 随机的 数字
