Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /***********************************************************
- *
- * This script (1 of 3) is part of the following presentation:
- * Unique, Pseudo Random Numbers: Generate without using RAM, Disk, CPU, I/O, or even time
- *
- * Script: UniquePseudoRandomNumbers_01_RandomizingTests.sql
- * Created by: Solomon Rutzky
- * Company: Sql Quantum Leap
- * Created on: 2016-07-10
- * Updated on: NULL ;-)
- *
- * The latest version of this script can be found at:
- * http://pastebin.com/vuK1Aiiv
- *
- ***********************************************************/
- USE [tempdb];
- SET NOCOUNT, ANSI_NULLS, ANSI_PADDING, QUOTED_IDENTIFIER ON;
- ---------------------------------------------------------------------------------
- GO
- --
- ----- This script is NOT intended to be run all at once (i.e. F5).
- ----- You should highlight each statement, or at least each section
- ----- (from BEGIN to END), to run individually.
- --
- ----- When connected to SQL Server, each section can be collapsed
- ----- (i.e. hidden) by clicking the "-" to the left of each "BEGIN".
- --
- GO
- -- =================================================
- BEGIN -- = RAND (no seed) =
- SELECT TOP (20) RAND() AS [RAND]
- FROM [master].[sys].[objects];
- SELECT TOP (20) RAND() AS [RAND-A], RAND() AS [RAND-B]
- FROM [master].[sys].[objects];
- -- RAND ( https://msdn.microsoft.com/en-us/library/ms177610.aspx )
- ----------------------------------------------------
- END
- GO
- -- =================================================
- BEGIN -- = RAND (with seed) =
- SELECT RAND(20) AS [0.713946019666829]; -- same across different servers, even different versions of SQL Server?
- SELECT TOP (20) RAND(so.[object_id]) AS [RAND]
- FROM [master].[sys].[objects] so;
- SELECT TOP (20) RAND(so.[object_id]) AS [RAND-A], RAND(so.[object_id]) AS [RAND-B]
- FROM [master].[sys].[objects] so;
- ----------------------------------------------------
- END
- GO
- -- =================================================
- BEGIN -- = NEWID =
- SELECT TOP (20) NEWID() AS [NEWID]
- FROM [master].[sys].[objects] so;
- SELECT TOP (20) NEWID() AS [NEWID-A], NEWID() AS [NEWID-B]
- FROM [master].[sys].[objects] so;
- -- NEWID ( https://msdn.microsoft.com/en-us/library/ms190348.aspx )
- ----------------------------------------------------
- END
- GO
- -- =================================================
- BEGIN -- = CRYPT_GEN_RANDOM (no seed) =
- SELECT TOP (20) CRYPT_GEN_RANDOM(4) AS [CRYPT_GEN_RANDOM]
- FROM [master].[sys].[objects] so;
- SELECT TOP (20) CRYPT_GEN_RANDOM(4) AS [CRYPT_GEN_RANDOM-A],
- CRYPT_GEN_RANDOM(4) AS [CRYPT_GEN_RANDOM-B]
- FROM [master].[sys].[objects] so;
- -- Introduced in SQL Server 2012
- -- https://msdn.microsoft.com/en-us/library/cc627408.aspx
- ----------------------------------------------------
- END
- GO
- -- =================================================
- BEGIN -- = CRYPT_GEN_RANDOM (with seed) =
- SELECT TOP (20) CRYPT_GEN_RANDOM(4, 0x1122334455) AS [CRYPT_GEN_RANDOM]
- FROM [master].[sys].[objects] so;
- SELECT TOP (20) CRYPT_GEN_RANDOM(4, 0x1122334455) AS [CRYPT_GEN_RANDOM-A],
- CRYPT_GEN_RANDOM(4, 0x1122334455) AS [CRYPT_GEN_RANDOM-B]
- FROM [master].[sys].[objects] so;
- ----------------------------------------------------
- END
- GO
- -- =================================================
- BEGIN -- = RAND with CRYPT_GEN_RANDOM-based seed =
- SELECT TOP (20) RAND(CRYPT_GEN_RANDOM(4)) AS [RAND]
- FROM [master].[sys].[objects] so;
- SELECT TOP (20) RAND(CRYPT_GEN_RANDOM(4)) AS [RAND-A],
- RAND(CRYPT_GEN_RANDOM(4)) AS [RAND-B]
- FROM [master].[sys].[objects] so;
- ----------------------------------------------------
- END
- GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement