【问题标题】:How to generate random Email Address via. Stored Procedure or Function in SQL Server如何通过生成随机电子邮件地址。 SQL Server 中的存储过程或函数
【发布时间】:2019-03-09 01:20:01
【问题描述】:

我是 T-SQL 的新手,我有一个要求,我使用函数或存储过程在 SQL 服务器中生成了数百万个唯一的随机虚假电子邮件 ID。

使用 JAVA,我创建了一个程序,它可以生成 50 个唯一的电子邮件 ID(如下所述),但我希望在 SQL 服务器中也一样。

能否请您帮助我如何使用 T-SQL 实现?任何帮助将不胜感激。

package com.ing.tdm;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.StringTokenizer;

import org.apache.commons.lang3.RandomStringUtils;

public class EmailGenerator {

    public static String getEmailDomains(){
         String randomElement = "";
        String strOfEmailDomains = "aol.com, att.net, comcast.net, facebook.com, gmail.com, gmx.com, googlemail.com, google.com, hotmail.com, hotmail.co.uk, mac.com, me.com, mail.com, msn.com, live.com, sbcglobal.net, verizon.net, yahoo.com, yahoo.co.uk, email.com, fastmail.fm, games.com, gmx.net, hush.com, hushmail.com, icloud.com, iname.com, inbox.com, lavabit.com, love.com , outlook.com, pobox.com, protonmail.com, rocketmail.com, safe-mail.net, wow.com , ygm.com , ymail.com, zoho.com, yandex.com, bellsouth.net, charter.net, cox.net, earthlink.net, juno.com, btinternet.com, virginmedia.com, blueyonder.co.uk, freeserve.co.uk, live.co.uk, ntlworld.com, o2.co.uk, orange.net, sky.com, virgin.net, wanadoo.co.uk, bt.com, sina.com, sina.cn, qq.com, naver.com, hanmail.net, daum.net, nate.com, yahoo.co.jp, yahoo.co.kr, yahoo.co.id, yahoo.co.in, yahoo.com.sg, yahoo.com.ph, 163.com, 126.com, aliyun.com, foxmail.com, hotmail.fr, live.fr, laposte.net, yahoo.fr, wanadoo.fr, orange.fr, gmx.fr, sfr.fr, neuf.fr, free.fr, gmx.de, hotmail.de, live.de, online.de, t-online.de , web.de, yahoo.de, libero.it, virgilio.it, hotmail.it, aol.it, tiscali.it, alice.it, live.it, yahoo.it, email.it, tin.it, poste.it, teletu.it, mail.ru, rambler.ru, yandex.ru, ya.ru, list.ruhotmail.be, live.be, skynet.be, voo.be, tvcablenet.be, telenet.be, hotmail.com.ar, live.com.ar, yahoo.com.ar, fibertel.com.ar, speedy.com.ar, arnet.com.ar, yahoo.com.mx, live.com.mx, hotmail.es,yahoo.com.ar, fibertel.com.ar, speedy.com.ar, arnet.com.ar, yahoo.com.mx, live.com.mx, hotmail.es, hotmail.com.mx, prodigy.net.mx, yahoo.com.br, hotmail.com.br, outlook.com.br, uol.com.br, bol.com.br, terra.com.br, ig.com.br, itelefonica.com.br, r7.com, zipmail.com.br, globo.com, globomail.com, oi.com.br";
        StringTokenizer st = new StringTokenizer(strOfEmailDomains, ",");
        Random rand = new Random();

        List<String> givenList = new ArrayList<String>();

        while(st.hasMoreElements()){
            String emaildomain = (String) st.nextElement();
            givenList.add(emaildomain);
        }

        if(null!=givenList && givenList.size() > 0){
            int randomIndex = rand.nextInt(givenList.size());
              randomElement = givenList.get(randomIndex);
        }

        return randomElement;

    }


public static String generateRandomEmail(int length) {
    String emailId = "";
    String allowedChars = "abcdefghijklmnopqrstuvwxyz" + "1234567890";
    String allowedSpecialChars = "_-.";

    String temp = RandomStringUtils.random(length, allowedChars);
    emailId = (temp.substring(0, temp.length() - 9)
            +Character.toString((RandomStringUtils.random(length, allowedSpecialChars)).charAt(0))
            +temp.substring(12, 18)
            +"@"+getEmailDomains()).replaceAll("\\s","");

    System.out.println(emailId);
    return emailId;
}

public static void main(String[] args) {
    for (int i = 0; i < 50; i++) {
        generateRandomEmail(20);
    }
}

}

【问题讨论】:

  • 直接在 t-sql 中执行此操作不是一个好方法。 SQL 旨在处理数据集,而不是生成随机数据。当然可以,但是在 t-sql 中执行此操作很复杂且速度很慢。既然您已经有了可以做到这一点的代码,为什么还需要重新创建它?

标签: java sql-server tsql


【解决方案1】:

如果您真的想使用 SQL 执行此操作,请尝试以下方法之一...

DECLARE @randomString VARCHAR(255)
SELECT
  @randomString = CONVERT(VARCHAR(255), NEWID())
PRINT @randomString

DECLARE @Length INT = 25
PRINT LEFT(REPLACE(NEWID(), '-', ''), @Length)

【讨论】:

    【解决方案2】:

    您好,我想出了一个更困难的解决方案,但我认为它更适合您的需求。

    我有三个临时表:

    • emailDomain 具有 id 的所有域的列表
    • allowedChar 具有 id 的所有字符的列表
    • allowedSpecialChar 具有 id 的所有特殊字符的列表

    创建表格后,我使用递归 cte 50 行(如果您愿意,可以做更多),随机电子邮件长度和邮件 ID。然后我为邮件中的每个字符在 allowedChar 表中的 id 的牧场中生成一个随机 id。然后我用生成的 id 加入 allowedChar 表,并将单个字符与“for xml path”连接在一行中。 对于 emailDomain 和 allowedSpecialChar,我的做法几乎相同。最后,我将所有内容连接到一个有效的电子邮件地址。

    --setup emailDomain table
    if OBJECT_ID('tempdb..#emailDomain') is not NULL
        drop table #emailDomain
    
    create table #emailDomain (
        id int IDENTITY(1,1) PRIMARY KEY,
        domain varchar(50) not null
    )
    
    insert into #emailDomain
    --id is automatic generated
    values('aol.com')
         ,('att.net')
         ,('comcast.net')
         ,('facebook.com')
         ,('gmail.com')
         ,('gmx.com')
    
    --setup allowedChar table
    if OBJECT_ID('tempdb..#allowedChar') is not NULL
        drop table #allowedChar
    
    create table #allowedChar(
        id int IDENTITY(1,1) PRIMARY KEY,
        aChar char(1) not null
    )
    
    insert into #allowedChar
    values('a'),('b'),('c'),('d'),('e'),('f'),('g'),('h'),('i'),('j'),('k'),('l'),('m'),('n'),('o'),('p'),('q')
    ,('r'),('s'),('t'),('u'),('v'),('w'),('x'),('y'),('z'),('1'),('2'),('3'),('4'),('5'),('6'),('9'),('7'),('0'),('8')
    
    --setup allowedSpecialChar table
    if OBJECT_ID('tempdb..#allowedSpecialChar') is not NULL
        drop table #allowedSpecialChar
    
    create table #allowedSpecialChar(
        id int IDENTITY(1,1) PRIMARY KEY,
        asChar char(1)
    )
    
    insert into #allowedSpecialChar
    VALUES('_'),('-'),('.')
    
    declare @countDomains as int = (select count(*) from #emailDomain)
    declare @countallowedChars as int = (select count(*) from #allowedChar)
    declare @countallowedSpecialChars as int = (select count(*) from #allowedSpecialChar);
    
    if OBJECT_ID('tempdb..#rowsWithRandomCharsNrs') is not NULL
        drop table #rowsWithRandomCharsNrs;
    
    --generate with recursion 50 rows, with an id and a random length for the e-mail address
    with 
    baseRowsWithEmailLength as (
        select 1 as idMail, round(RAND(CHECKSUM(NEWID())) * 60 + 1,0) as strLength
        union all
        select idMail + 1 as idMail, round(RAND(CHECKSUM(NEWID())) * 60 + 1,0) as strLength
        from baseRowsWithEmailLength 
        where idMail < 50
    )
    --generate with recursion a random number (indexChar) for every char in the string, which is an id to join with the table allowedChar
    ,rowsWithRandomCharsNrs as(
        select idMail, strLength, 1 as idchar,  round(RAND(CHECKSUM(NEWID())) * (@countallowedChars-1) +1,0) as indexChar
        from baseRowsWithEmailLength
        union all
        select idMail, strLength, idchar + 1 as idchar,  round(RAND(CHECKSUM(NEWID())) *(@countallowedChars-1) +1,0) as indexChar
        from rowsWithRandomCharsNrs
        where idchar < strLength
    )
    
    
    select *
    into #rowsWithRandomCharsNrs
    from rowsWithRandomCharsNrs
    
    
    SELECT idMail  
          ,concat(left(mailRandStr, firstMailPartLength),aspc.asChar,RIGHT(mailRandStr, StrLength - firstMailPartLength), '@', ed.domain) as Mail
    FROM(
        SELECT idMail
              ,strLength
              ,firstMailPartLength
              ,mailRandStr
              --generate a random number to join a random Domain and specialchar
              ,round(RAND(CHECKSUM(NEWID())) * (@countDomains-1) +1,0) as idDomain
              ,round(RAND(CHECKSUM(NEWID())) * (@countallowedSpecialChars-1) +1,0) as idSpecialChar
        FROM (
            SELECT DISTINCT
                   idMail
                  ,StrLength
                  ,round(StrLength * 0.75,0) as firstMailPartLength 
                  --concat all chars to a single string via for xml path
                  ,(
                     select ''+ac.aChar
                     from #rowsWithRandomCharsNrs sub
                     join #allowedChar ac on sub.indexChar = ac.id
                     where sub.idMail = m.idMail
                     FOR XML PATH('')
                  )as mailRandStr
            FROM #rowsWithRandomCharsNrs m
        ) sub
    )sub
    left join #emailDomain ed on sub.idDomain = ed.id
    left join #allowedSpecialChar aspc on sub.idSpecialChar  = aspc.id
    

    你有什么问题吗?我帮你。

    【讨论】:

    • 谢谢亚历克斯,它按预期工作:) 另外,我在查询中添加了“OPTION (MAXRECURSION 2000)”(即将循环限制为特定数量)以生成数千个 &数百万个电子邮件 ID。 select * into #rowsWithRandomCharsNrs from rowsWithRandomCharsNrs OPTION (MAXRECURSION 2000) 感谢您的帮助。
    【解决方案3】:

    您可以通过CROSS JOINNEWID() 生成大量电子邮件地址。这个一次生成 30k+ 封电子邮件,直到达到或超过目标计数 - 大约需要一秒钟才能到达 1019304 个电子邮件地址(演示:http://rextester.com/GJS41165

    DECLARE @targetCount INT = 1000000
    
    CREATE TABLE #emailTableTemp (fakeEmail VARCHAR(100))
    
    WHILE (SELECT COUNT(1) FROM #emailTableTemp) < @targetCount
    BEGIN
        INSERT INTO #emailTableTemp
        SELECT CONCAT(t2.prefix,t1.email) AS fakeEmail FROM 
        (VALUES ('aol.com'),('att.net'),('comcast.net'),('facebook.com'),('gmail.com'),('gmx.com'),('googlemail.com'),('google.com'),('hotmail.com'),('hotmail.co.uk'),('mac.com'),('me.com'),('mail.com'),('msn.com'),('live.com'),('sbcglobal.net'),('verizon.net'),('yahoo.com'),('yahoo.co.uk'),('email.com'),('fastmail.fm'),('games.com'),('gmx.net'),('hush.com'),('hushmail.com'),('icloud.com'),('iname.com'),('inbox.com'),('lavabit.com'),('love.com '),('outlook.com'),('pobox.com'),('protonmail.com'),('rocketmail.com'),('safe-mail.net'),('wow.com '),('ygm.com '),('ymail.com'),('zoho.com'),('yandex.com'),('bellsouth.net'),('charter.net'),('cox.net'),('earthlink.net'),('juno.com'),('btinternet.com'),('virginmedia.com'),('blueyonder.co.uk'),('freeserve.co.uk'),('live.co.uk'),('ntlworld.com'),('o2.co.uk'),('orange.net'),('sky.com'),('virgin.net'),('wanadoo.co.uk'),('bt.com'),('sina.com'),('sina.cn'),('qq.com'),('naver.com'),('hanmail.net'),('daum.net'),('nate.com'),('yahoo.co.jp'),('yahoo.co.kr'),('yahoo.co.id'),('yahoo.co.in'),('yahoo.com.sg'),('yahoo.com.ph'),('163.com'),('126.com'),('aliyun.com'),('foxmail.com'),('hotmail.fr'),('live.fr'),('laposte.net'),('yahoo.fr'),('wanadoo.fr'),('orange.fr'),('gmx.fr'),('sfr.fr'),('neuf.fr'),('free.fr'),('gmx.de'),('hotmail.de'),('live.de'),('online.de'),('t-online.de '),('web.de'),('yahoo.de'),('libero.it'),('virgilio.it'),('hotmail.it'),('aol.it'),('tiscali.it'),('alice.it'),('live.it'),('yahoo.it'),('email.it'),('tin.it'),('poste.it'),('teletu.it'),('mail.ru'),('rambler.ru'),('yandex.ru'),('ya.ru'),('list.ruhotmail.be'),('live.be'),('skynet.be'),('voo.be'),('tvcablenet.be'),('telenet.be'),('hotmail.com.ar'),('live.com.ar'),('yahoo.com.ar'),('fibertel.com.ar'),('speedy.com.ar'),('arnet.com.ar'),('yahoo.com.mx'),('live.com.mx'),('hotmail.es,yahoo.com.ar'),('fibertel.com.ar'),('speedy.com.ar'),('arnet.com.ar'),('yahoo.com.mx'),('live.com.mx'),('hotmail.es'),('hotmail.com.mx'),('prodigy.net.mx'),('yahoo.com.br'),('hotmail.com.br'),('outlook.com.br'),('uol.com.br'),('bol.com.br'),('terra.com.br'),('ig.com.br'),('itelefonica.com.br'),('r7.com'),('zipmail.com.br'),('globo.com'),('globomail.com'),('oi.com.br')) t1(email)
        CROSS JOIN (VALUES 
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),        
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),        
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),        
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),
            (CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@')),(CONCAT(REPLACE(CONVERT(VARCHAR(50), NEWID()),'-',''),'@'))
            ) t2(prefix)
    END
    
    SELECT COUNT(1) FROM #emailTableTemp
    SELECT TOP 10 * FROM #emailTableTemp ORDER BY fakeEmail
    
    DROP TABLE #emailTableTemp
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-12
      • 2021-10-18
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多