SELECT CHECKSUM(NEWID()) AS CheckSumValue, CHECKSUM(NEWID()) AS CheckSumValue2; GO
IF OBJECT_ID(N'dbo.vRandomGuid', 'V') IS NOT NULL BEGIN DROP VIEW dbo.vRandomGuid; END GO --================================== -- 功能: 随机Guid视图 -- 说明: 具体实现阐述 -- 作者: XXX -- 创建: yyyy-MM-dd -- 修改: yyyy-MM-dd XXX 修改内容描述 --================================== CREATE VIEW dbo.vRandomGuid --$Encode$-- AS SELECT RandomGuid = NEWID(); GO 调用该视图的T-SQL代码如下: SELECT TOP RandomGuid FROM dbo.vRandomGuid; GO
IF OBJECT_ID(N'dbo.ufn_RandNum', 'FN') IS NOT NULL BEGIN DROP FUNCTION dbo.ufn_RandNum; END GO --================================== -- 功能: 获取区间内的任意一个随机数值 -- 说明: 具体实现阐述 -- 作者: XXX -- 创建: yyyy-MM-dd -- 修改: yyyy-MM-dd XXX 修改内容描述 -- 调用: SELECT dbo.ufn_RandNum(, ); --================================== CREATE FUNCTION dbo.ufn_RandNum ( @intMin INT, -- 随机数值的最小值 @intMax INT -- 随机数值的最大值 ) RETURNS INT --$Encode$-- AS BEGIN SET @intMin = ISNULL(@intMin, ); SET @intMax = ISNULL(@intMax, ); DECLARE @guidValue AS UNIQUEIDENTIFIER; SELECT TOP @guidValue = RandomGuid FROM dbo.vRandomGuid; RETURN ABS(CHECKSUM(@guidValue)) % (@intMax - @intMin + ) + @intMin; END GO
SELECT dbo.ufn_RandNum(, ) AS RandNum, dbo.ufn_RandNum(, ) AS RandNum; GO
IF OBJECT_ID(N'dbo.ufn_RandDate', 'FN') IS NOT NULL
BEGIN
DROP FUNCTION dbo.ufn_RandDate;
END
GO
--==================================
-- 功能: 获取日期区间内的任意一个随机日期
-- 说明: 具体实现阐述
-- 作者: XXX
-- 创建: yyyy-MM-dd
-- 修改: yyyy-MM-dd XXX 修改内容描述
-- 调用: SELECT @dtmRand = dbo.ufn_RandDate('--', '--');
--==================================
CREATE FUNCTION dbo.ufn_RandDate
(
@dtmMin DATETIME, -- 随机日期的最小值
@dtmMax DATETIME -- 随机日期的最大值
) RETURNS DATETIME
--$Encode$--
AS
BEGIN
SET @dtmMin = ISNULL(@dtmMin, '--');
SET @dtmMax = ISNULL(@dtmMax, '--');
DECLARE @guidVue AS UNIQUEIDENTIFIER;
SELECT TOP @guidVue = RandomGuid
FROM dbo.vRandomGuid;
-- 可以将HOUR换为DAYS
RETURN DATEADD(HOUR, (ABS(CHECKSUM(@guidVue)) % ( + DATEDIFF(HOUR, @dtmMax, @dtmMin))), @dtmMin);
END
GO
SELECT dbo.ufn_RandDate('--', '--') AS RandDate, dbo.ufn_RandDate('--', '--') AS RandDate;
GO
SELECT TOP Num FROM dbo.SeqDataTable WHERE Num BETWEEN @intMin AND @intMax ORDER BY NEWID() ASC;
SELECT TOP DATEADD(DAY, Num, @dtmMin) FROM dbo.SeqDataTable WHERE Num BETWEEN AND DATEDIFF(DAY, @dtmMax, @dtmMin) ORDER BY NEWID() ASC;
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有