diff --git a/create-test-db.ps1 b/create-test-db.ps1 index 2351e12..4eaa627 100644 --- a/create-test-db.ps1 +++ b/create-test-db.ps1 @@ -2,17 +2,57 @@ param( [string]$ContainerName = "sql2022", [string]$SaPassword = "Pa55word", [string]$DbName = "TestLab", - [int]$Users = 10000, + [int]$Users = 1000000, [int]$Products = 5000, [int]$Orders = 2000000, [switch]$RecreateDb # drops and recreates the DB ) function Invoke-OrThrow { - param([string]$Cmd, [string]$Err = "Command failed") - $out = Invoke-Expression $Cmd 2>&1 - if ($LASTEXITCODE -ne 0) { throw "$Err`n$out" } - return $out + [CmdletBinding()] + param( + [Parameter(Mandatory)] + [string]$Cmd, + [string]$Err = "Command failed", + [string]$Activity = "Running command", + [int]$ProgressDelayMs = 200 + ) + + $sw = [System.Diagnostics.Stopwatch]::StartNew() + $spinner = @('|','/','-','\') + $i = 0 + $job = Start-Job -ScriptBlock { + param($Cmd) + $output = Invoke-Expression $Cmd 2>&1 + [pscustomobject]@{ + Output = $output + ExitCode = $LASTEXITCODE + } + } -ArgumentList $Cmd + + while ($job.State -eq 'Running') { + $i = ($i + 1) % $spinner.Length + Write-Progress -Activity $Activity -Status ("{0} elapsed {1:c}" -f $spinner[$i], $sw.Elapsed) -PercentComplete 50 + Start-Sleep -Milliseconds $ProgressDelayMs + } + + Write-Progress -Activity $Activity -Completed + $sw.Stop() + + $result = Receive-Job $job -Keep + Remove-Job $job | Out-Null + + if ($null -eq $result) { + throw ("{0}`nNo output. Final job state: {1}. Duration: {2:c}" -f $Err, $job.State, $sw.Elapsed) + } + + if ($result.ExitCode -ne 0) { + $text = ($result.Output -join [Environment]::NewLine) + throw ("{0}`n{text}`nExitCode: {1}. Duration: {2:c}" -f $Err, $result.ExitCode, $sw.Elapsed) + } + + Write-Host ("{0} completed in {1:c}" -f $Activity, $sw.Elapsed) + return $result.Output } $existing = (docker ps -a --format "{{.Names}}" | Where-Object { $_ -eq $ContainerName }) @@ -35,6 +75,7 @@ for ($i=1; $i -le $tries; $i++) { $tmp = New-TemporaryFile @' +SET NOCOUNT ON; -- ============================================================ -- TestLab: lightweight test DB for T-SQL exercises -- ============================================================ @@ -63,6 +104,8 @@ CREATE TABLE dbo.Users ( UserID INT IDENTITY(1,1) PRIMARY KEY, Username NVARCHAR(50) NOT NULL, + FirstName NVARCHAR(200) NOT NULL, + Surname NVARCHAR(200) NOT NULL, Email NVARCHAR(255) NOT NULL UNIQUE, CreatedAt DATETIME2 NOT NULL DEFAULT SYSUTCDATETIME(), IsActive BIT NOT NULL DEFAULT 1 @@ -163,17 +206,8610 @@ AS BEGIN ORDER BY Spend DESC; END'); +-- NUMBERS TABLE +IF OBJECT_ID('dbo.Numbers') IS NOT NULL + DROP TABLE dbo.Numbers + +PRINT 'Populating numbers table'; +SELECT TOP 10000000 + IDENTITY(INT,1,1) AS N +INTO dbo.Numbers +FROM master.dbo.syscolumns sc1 +CROSS JOIN master.dbo.syscolumns sc2 +CROSS JOIN master.dbo.syscolumns sc3 +CROSS JOIN master.dbo.syscolumns sc4 +CROSS JOIN master.dbo.syscolumns sc5; + +PRINT 'Numbers table populated, add primary key'; +ALTER TABLE dbo.Numbers ADD CONSTRAINT PK_Numbers_N PRIMARY KEY CLUSTERED (N) WITH FILLFACTOR = 100; + +PRINT 'Grant permissions'; +GRANT SELECT, REFERENCES ON dbo.Numbers TO PUBLIC; + +-- POPULATE TABLES + +IF OBJECT_ID('tempdb..#first_name') IS NOT NULL + DROP TABLE #first_name; + +CREATE TABLE #first_name ( + first_name NVARCHAR(200) NOT NULL +); + +DECLARE @raw NVARCHAR(MAX) = N' +aaron +abas +abbie +abby +abdul +abel +abelardo +abelrai +abigail +abisara +abogada +abogados +abraham +abrey +abril +achille +adam +adamn +adams +adan +adar +adel +adele +aden +adi +adimarys +adolfo +adria +adrian +adriana +adriane +adriann +adrianni +adriano +adrianus +adrien +adrienne +afrim +agathe +aggie +agnes +agnieszka +agostina +aguilar +agustin +ahlam +ahmay +ahmed +aida +aide +aiden +aileen +ailyn +aime +aimee +airnbn +aisha +akhil +aki +akiko +alaeddin +alain +alan +alana +alanna +alannah +alayne +alba +albañil +albert +alberto +albina +aldo +aldryn +ale +alec +aleena +alegario +alejandra +alejandro +aleksandra +aleman +alena +aleshia +alessandra +alessandro +aleta +alethia +aletia +alex +alexa +alexander +alexandra +alexandre +alexandrea +alexi +alexia +alexis +aleyda +alfonso +alfonzo +alfred +alfredo +alia +alice +alicen +alicia +alida +alie +alina +aline +alisa +alison +alissa +alix +alixandra +aliya +aliyah +aliz +aliza +all +allan +allen +allesandro +allesdandro +allie +allina +allison +ally +allyn +allyson +alma +almadelia +alna +alon +alona +alondra +alonso +alosnos +altilano +aluaro +alvaro +alya +alyse +alyson +alyssa +alyx +ama +aman +amanda +amandine +amando +amansala +amar +amarilis +amber +amdia +ame +amee +amelia +amelie +amerson +ami +amie +amigo +amigos +amir +amisha +amit +amith +amity +amma +ammar +amor +amy +amyjo +ana +anabel +anais +analia +analida +analise +anamaria +anamary +ananda +ananya +anastasia +anayeli +anca +ancelmo +anda +andersson +andra +andre +andrea +andreas +andreja +andres +andrew +andrews +andrey +anduena +andy +andye +ane +anel +anella +angel +angela +angele +angeles +angelica +angelina +angeline +angelo +angelynn +angie +angy +anh +ani +anibal +anica +anie +anika +anim +anina +anique +anirudh +anis +anissa +anita +anjali +anjie +ann +anna +annabela +annabelle +annalee +annalisa +anne +anneliese +annelise +annemaria +annemarie +annette +annie +annigna +another +anouk +anthea +anthony +antje +antoine +anton +antonio +antony +anu +anupama +anurag +anya +anzhelika +aparna +april +apryl +aquilino +aquilio +aracely +arash +arava +araya +arden +area +areli +arely +argelia +ariana +ariane +arianna +ariel +arielle +arizona +arlene +arleta +arlyne +arman +armando +armonia +arnaud +arnold +arthur +arthurs +artur +arturo +aruni +arvand +ash +asha +ashlee +ashleigh +ashley +ashlyn +aspe +assadour +asusena +athena +ati +atkins +atsuko +attree +aubree +auction +audra +audrey +audria +aundrea +aura +aurelia +aurelie +aurellie +aureo +aurora +aurore +austin +auten +ava +avelardo +avendano +avery +aviel +avila +aviva +awa +axel +aydee +ayesha +aygline +aylee +ayme +aymeric +ayse +azalea +babak +babi +bahareh +bahi +bahman +bailey +baili +baillargeault +balaouris +band +banelly +banks +barb +barbara +barbro +bardia +barnshaw +barreau +barrett +barrow +barry +bart +baruch +bas +bashi +basia +baudel +bea +beach +beata +beate +beatrice +beatriz +becca +becci +bech +bechmann +becki +becky +beldon +belen +belgica +belinda +bell +bella +bellin +belson +ben +benay +benedetta +benedicte +benedikt +bener +benigno +benito +benjamin +benn +bennet +benoit +bercy +berenice +berit +berkowitz +berliat +bernadette +bernard +bernardino +bernardo +bernd +bernice +berry +bessette +beth +bethany +betsy +bette +betti +bettina +betts +betty +betzy +bevan +beverly +bevin +bhargavi +biana +bianca +bici +bieta +bigler +bijan +bike +biken +bikes +bill +billie +billy +binfoh +binh +birgir +birgitta +bittia +bizanti +bjorn +blackman +blain +blaine +blaise +blake +blanca +blass +blathnaid +bleachclub +block +blockeado +blocked +blocking +bloq +bloquada +bloque +bloqueada +bloqueado +bloquedado +bloquedo +bloqueo +blythe +bob +bobbie +bobby +bodega +body +bonita +bonnal +bonnie +bony +booking +boqueano +boris +borka +bouchier +boutique +bowen +bracelet +brad +bradbury +braden +bradley +bradshaw +braedi +braga +branden +brandi +brandom +brandon +brandy +braysher +bre +breann +breanna +breen +breezy +brehan +brenda +brendan +brenna +brent +bret +breton +brett +bria +brian +briana +brianna +brianne +bridget +bridgette +brie +briese +brigette +brigid +brigitte +brion +britany +britney +britny +britt +britta +brittany +brittnay +britty +broadman +brockie +brook +brooke +brookelyn +bruce +bruna +bruno +brusovanik +bryan +brynn +brynne +buchan +burgess +burley +butler +cafetería +cahuich +caitla +caitlan +caitlin +caitlyn +caity +caleb +calin +callaghan +callista +cally +calum +calvin +cam +cambria +cameron +camila +camilla +camille +camilo +campbell +camper +campos +can +cancelled +candace +candelaria +candiano +candice +candie +candince +candyce +canosa +cantu +cappy +cara +caren +carey +carin +carina +carine +cark +carl +carla +carley +carlie +carling +carlitos +carlo +carlos +carlotta +carlson +carly +carmen +carmina +caro +carol +carol +carola +carole +caroliine +carolina +caroline +carolyn +carolynn +caron +caroti +carrie +carter +carwen +caryn +casa +casandra +casey +cash +casilda +casper +cassandra +cassidy +cassie +cassy +cat +catalan +catalina +catarina +catherine +cathi +cathleen +cathryn +cathy +caviccinow +cayetana +cecilia +cecilie +cecily +cedric +cee +celeste +celia +celian +celine +cemile +cerbone +ceres +cesar +cezar +ch5 +chaaban +chad +chadwick +chalars +chanda +chandra +chanler +chano +chantal +chantale +chantelle +chapman +char +charee +charlene +charles +charlie +charlot +charlotte +chas +chasity +chasty +chatty +chavez +chef +chelsea +chelsey +chelsy +chema +cheng +chenin +cheree +cheria +cherie +cheryl +cheslea +chesney +cheyenne +chiara +chica +chiho +chilina +chin +chinitas +chinwe +chloe +chocki +chong +chou +chris +chrissy +christa +christaine +christelle +christi +christian +christiane +christiansen +christie +christina +christine +christinne +christoph +christophe +christopher +christy +chrysti +chuck +chuckl +chyna +chynna +ciara +cid +cinthhia +cinthia +cinthya +cintia +cintya +citlalli +cittone +claid +clair +claire +clara +clare +clase +clases +class +classe +classes +claude +claudia +claudio +clauvin +clay +clayton +clea +clemens +clemente +clementine +cliff +clotilde +cloud +clément +coaker +coby +cocina +cody +cole +coleen +colette +colin +colleen +collin +colton +columba +comision +comisiones +con +condosy +conner +connie +conrado +constantino +constanza +construccion +consuelo +consumo +contador +conte +contenti +conti +conville +conway +cooley +cooper +coppin +cora +coral +corbett +cordelia +cordula +core +corey +cori +corina +corine +corinna +corinne +corky +cormery +cornell +corrado +corry +cortesia +corwin +cory +costa +costanza +courtney +craig +creer +cris +crisanta +cristhian +cristian +cristiana +cristina +cristobal +cristol +cristy +cristyn +crossman +crowe +crowley +cruz +crystal +csaba +cuauhtemoc +cuentiador +cullen +cundy +curgenven +curt +curtis +cyndi +cynthia +cyril +cécile +dadsfs +dafni +dagnall +dagoberto +dahlia +daisy +dale +dalet +dali +dalia +daliah +dallard +dalton +damaris +damian +damien +damini +damon +dan +dana +dane +daneile +daneise +danel +danell +dang +dani +dania +daniel +daniela +danielazamorano +daniella +danielle +daniels +danna +danni +danny +dante +danyel +daphna +daphne +dar +dara +darci +daria +dario +darius +dariush +darla +darlene +darlenes +darrell +darren +dasi +daskey +dastgiri +daughter +dave +david +davida +davidson +dawn +dawna +dayari +dayla +dayna +daynia +dean +deane +deb +debbi +debbie +debora +deborah +debra +deciga +dee +deena +deepa +deepak +deepti +deetta +deidre +deirdre +dejan +del +delair +delaney +deleon +delete +delfina +delfino +delia +delna +delphine +delroi +dema +demet +demetri +dena +denee +denis +denise +denisse +deniz +dennie +dennis +dennise +dereck +derek +dermot +derrick +desayuno +desire +desiree +desta +destiny +devani +devara +devin +devon +devyn +dexelle +dey +dezza +dhana +dhapne +dhia +dia +diamantara +diana +diane +dianna +dianne +diaz +dide +didem +didi +didier +diederik +diego +diel +dierkes +dietz +digital +dilan +dilia +dilini +dill +dilshad +dimateo +dimitri +dina +dinah +dini +diogo +diona +dionne +dirk +djihane +djulbic +dmitri +dodi +dogan +dolev +domenic +domenico +dominic +dominic. +dominick +dominik +dominique +domitilia +don +donald +donia +donna +donnachie +donny +donohue +donough +dora +doran +doreen +dorine +doris +dorita +dorota +dorothea +dorothy +douglas +downing +dr. +dray +dreamcatcher +dreghorn +drew +drez +dryden +ducros +duncan +dunster +duplicate +dyana +dylan +dyna +dzielak +eaton +eben +edan +eddier +eddy +eden +eder +edgar +edgardo +edie +edith +edmundo +edna +edouard +eduardo +eduaro +edward +edwards +edwin +effie +efi +efrain +egar +ege +eileen +ekebil +elaine +elana +elba +elda +eleanor +elena +elhassan +eli +elia +eliana +eliane +elias +elie +elif +eligio +elisa +elisabeth +elisabetta +eliscia +elise +eliveg +eliza +elizabeth +elize +ellen +ellery +ellian +ellie +elliot +elliott +elly +elmedina +eloisa +elona +els +elsa +elsie +elva +elvan +elvia +elvira +elysa +elyse +elyssa +emanuel +emanuele +emanuelle +emelia +emely +emerald +emery +emet +emigio +emilia +emiliano +emilie +emilio +emily +emir +emma +emmanuel +emmanuelle +emmanuellovesme +empleado +employee +enfermera +enfermero +enrightobrien +enrika +enrique +entrenadores +ephraim +eran +erez +erhard +eric +erica +erich +erick +erik +erika +erin +erinn +erlend +ermicely +ernest +ernesto +erol +eron +errol +erskine +ersoy +erwin +erynn +esau +esin +eskil +esmeralda +espie +esra +estacionamiento +esteban +estefania +estefany +estela +estelle +ester +estermann +esther +estin +estrada +estrella +estss +estuardo +eszter +ethan +etzel +eugene +eugenia +eugenio +eujenio +eunhee +eunice +eva +evadne +evangelina +evangeline +evangelo +evaristo +eve +evelyn +evelyne +even +everett +ewa +ewan +exline +extra +eyal +ezequiel +ezgi +ezra +fabia +fabian +fabianne +fabio +fabiola +fabris +fabrizio +facundo +fahamu +fairchild +falon +familia +family +fan +fani +fany +farah +farahnaz +farid +faris +farrokh +fatima +faulkner +fausto +fauto +favaloro +favio +faviola +fay +faysal +fdferg +febe +federica +federico +felice +felicia +felicity +feliks +felipe +felix +fell +fellahi +ferdinando +fergus +fermin +fern +fernanda +fernando +ferreyra +fidel +filipo +filippo +fillipo +filomeno +findlay +finkler +fiona +first +fischer +fisher +flavia +fletcher +fleur +flintoft +floence +flor +flora +florence +florencia +flores +florian +florinda +florine +forfoni +forrest +foster +fotoshooting +fran +france +frances +francesc +francesca +francesco +franchesca +francine +francis +francisca +francisco +franciska +franciso +franco +francois +frangi +frank +frankel +frankie +franklin +frankum +frannie +fransisco +fransua +franz +franziska +fraser +fred +freddy +frederic +frederique +fredricson +french +freya +fricker +frida +fried? +friedchen +friederike +from +frosh +fuentes +fusun +gabby +gabi +gabo +gabriel +gabriela +gabriella +gabrielle +gabrille +gaby +gael +gail +gal +gale +gali +garbiella +gareth +garret +garrett +garrick +gary +gaspar +gaston +gauthieo +gavin +gaye +gayle +geckos +gelfand +gemma +gemma/jason +genaoveva +genaro +general +genesis +genevieve +genoveva +geoff +geoffrey +georg +george +georgia +georgina +geory +ger +gerald +geraldine +geralyn +gerarardo +gerardo +gerbert +geri +germaine +german +gerogina +geronimo +gerry +gert +gery +gesine +geyer +ghita +gia +giacomo +gian +gianluca +gigi +gil +gilberth +gilberto +gilda +gill +gimena +gina +ginette +ginger +gingi +ginna +ginny +giorgio +giovana +giovanni +girish +gisela +gisele +giselie +gisella +giselle +gissela +gitano +giulia +giuliano +giuseppe +gizelle +gladis +gladys +gleice +glenn +gloria +glynn +goergina +golan +golden +gondard +gonzalo +gopal +gordon +gormsen +gorolay +gottsmann +grace +graciela +graeme +graham +graillot +granados +grant +grave +grazia +greatz +grecia +green +greening +greenwood +greg +gregg +gregorio +gregory +greissy +greta +gretchen +gretta +griffin +griselda +grupo +grégoire +guadalupe +guest +guillaume +guillem +guillermo +gunnar +guntra +gustavo +guy +guyenguyen +gwen +gwendolyn +gwynne +gyiora +gyöngyi +günther +haas +habid +habitacion +hadar +hagy +hahn +hain +hair +hajjar +hakan +hal +haleh +haley +halkan +halla +halle +halleh +hamburgesas +hamed +hamilton +hammond +hana +hanna +hannah +hans +harcemo +hardie +hargreaves +harold +harriet +harriett +harriman +harris +harrison +harry +harsha +harshit +hayden +hayes +hayleigh +hayley +hazal +heather +heberto +heco +hector +hedda +hediger +hedvig +hedwig +heidi +heidy +heike +heitor +helen +helena +helene +helge +helis +helminger +helmut +hend +henny +henrietta +henriette +henrik +henry +herb +herlinda +herman +hermelinda +hernan +hernandez +hernesto +heydi +higinio +hijos +hila +hilario +hilary +hilda +hildie +hildita +hilja +hillary +hipolito +hocking +hoj +hollie +holly +hollys +holm +holmar +holt +homero +honor +hope +horacio +horaria +hotel +hotels +houston +howard +howson +huesped +huespedes +hugette +hugh +hugo +hugues +humberto +humbeto +hunt +husband +hyatt +hyim +hyun +hyungung +ian +iana +ibrahim +ida +idalia +idan +idit +idle +idrees +ignacia +ignacio +ihar +iker +iklaas +ilana +ilaria +ileana +ilenia +ilhan +ill +ilsa +ilze +imiliano +imke +imri +inde +indiah +indigo +indy +ineda +info +inger +ingrid +ingvild +inkester +inma +inna +instructora +intrepid +ioannis +ira +iram +irby +irene +ireneusz +irfan +irina +iris +irit +irlanda +irma +iromi +irving +irwin +iryna +isaac +isabel +isabella +isabelle +isac +isadora +isauro +ishtar +ishveena +isidoro +ismael +isolda +israel +isreal +itamar +itzel +iva +ivan +ivana +ivin +ivo +ivon +ivona +ivonn +ivonne +ivor +ivy +iwa +iwona +iya +izabela +izzy +jaaziel +jabarie +jaci +jacinta +jack +jackeline +jackie +jacko +jackson +jaclyn +jacob +jacque +jacqueline +jacquelyn +jacques +jacqui +jacquie +jacylyn +jade +jadene +jadyn +jae +jaesoon +jahmeek +jaime +jaimee +jaimi +jair +jairo +jake +jakob +jaldip +jamaira +james +jami +jamie +jamil +jamison +jamund +jan +jana +janaina +janara +janaye +jane +janel +janell +janelle +janet +janeth +janette +janice +janick +janie +janiece +janika +janine +janis +jannan +jannie +jannik +japhet +jaqueline +jaques +jared +jarrod +jasbir +jasmin +jasmine +jason +jasroop +jasson +jastinder +javen +javid +javier +jay +jaya +jaye +jayesh +jaynee +jayran +jazmin +jean +jeanann +jeanette +jeanie +jeanine +jeanna +jeanne +jeannie +jeannine +jeesun +jeff +jefferson +jeffrey +jefrey +jehan +jehu +jen +jena +jenifer +jeniffer +jenine +jenn +jenna +jenni +jennie +jennifer +jennigje +jennnifer +jenny +jenora +jenoveva +jens +jeremey +jeremiah +jeremy +jeri +jerildy +jeroen +jerome +jeroo +jerry +jeso +jesper +jess +jessa +jesse +jessey +jessi +jessica +jessie +jessix +jessy +jesus +jette +jeyapal +jhn +jhon +jhonatan +jhony +jil +jill +jillaine +jillian +jim +jimena +jimm +jimmy +jinous +jisoo +joan +joana +joanna +joanne +joaquin +jocelyn +jochelson +jodi +jodie +jody +joe +joel +joelle +joern +joey +johan +johana +johanna +johannes +john +johnathan +johnna +johnny +johny +joi +joice +joleen +jolene +jolinda +jolivet +jon +jonas +jonathan +jones +jonhatan +joni +jonie +jonny +jonthan +jordan +jordana +jordi +jorge +jorrit +jose +josefina +josefine +joseph +josh +joshep +joshua +josiah +josiane +josie +josua +josue +journalist +joy +joyanne +joyce +joão +jsssica +juan +juanita +jud +judd +judie +judit +judith +judtth +judy +juella +juha +jule +jules +juli +julia +julian +juliana +julianne +julie +julien +juliet +julieta +juliette +julio +julissa +julz +june +junonia +juraj +jurg +jurgen +justin +justine +jørgen +kacee +kaci +kacie +kael +kaeley +kaelin +kai +kaiden +kaila +kailey +kaisa +kait +kaitlin +kaitlyn +kaity +kaley +kali +kallie +kalonsan +kalpakoglou +kane +kanessa +kanika +kara +kareema +karen +karey +kari +kariela +karima +karin +karina +karine +karl +karla +karma +karmen +karmina +karolina +karolyn +karym +karyn +kasey +kasha +kashmir +kasia +kasper +kat +katalin +katarina +kataryna +kate +katelyn +kateryna +kathalina +katharine +katherina +katherine +kathi +kathia +kathie +kathleen +kathlenn +kathrin +kathrine +kathryn +kathy +kathya +katia +katie +katja +katrin +katrina +katrine +katy +katya +kaufmann +kavita +kavuzlu +kay +kayla +kaynak +kayvan +keandra +keating +keira +keisha +keith +kelen +kellen +keller +kelley +kelli +kellie +kelly +kelly2 +kellyann +kelsey +kemp +ken +kendal +kendall +kendra +kennedy +kennet +kenneth +kennethdencer +kenosha +kent +keren +keri +kerisha +kerlim +kerri +kerry +kerry/christina/gina +kerstens +kesa +keshia +kest +kevin +key +khalil +khambatta +khan +kia +kiana +kicki +kiel +kiera +kierin +kiernan +kika +kiki +kikikikikikikikiki +kim +kimberle +kimberlee +kimberlie +kimberly +kimia +kimmarie +kimmi +kimmie +kinaci +king +kinga +kingsley +kira +kirani +kirby +kirishna +kirk +kirstein +kirsten +kirsty +kisnorbo +kit +kitchen +kitzberger +kiusesu +klaas +klaus +klencheski +klára +knollmann +knox +kobey +koblinger +koen +koenig +koken +koli +kon +kora +kori +kortney +kory +kotler +krag +krauskopf +krawczyk +kripa +kris +krishna +krishnaja +krista +kristal +kristan +kristen +kristi +kristian +kristie +kristin +kristina +kristine +kristopher +kristy +kristyn +krizia +kruger +krystal +krysten +ksenya +kuehn +kuehne +kunal +kurt +kwan +kyla +kyle +kylie +kysa +labedz +lacey +lachlan +ladie +laetitia +laima +lais +lakota +lana +lanae +lance +lane +lang +lara +larae +larissa +laroi +larry +lashana +lasherelle +late +latonya +latricia +lauber +lauire +laura +laura/bryan +laure +laureen +laurel +lauren +laurence +laurencio +laurent +lauri +laurie +laurissa +lauryn +lavey +law +lawson +layla +layne +lays +layton +lco +lea +leader +leah +leandra +leandro +leann +leanne +lechus +leckie +lee +leeann +leeor +leif +leigh +leigha +leila +leilani +leini +leisan +lemise +lena +lenavitt +lene +lenel +lennartz +leno +leo +leobardo +leon +leonard +leonardo +leonel +leonie +leonoor +leonor +lerch +lesley +lesli +leslie +leticia +letizia +lettie +lev +lever +leverett +levesque +levi +levoyer +lewis +leyla +leyli +lia +lian +liana +lianne +libbey +libby +libi +liborio +lic. +lic.patricia +licia +lietti +ligia +liisa +liju +lila +lili +lilia +lilian +liliana +lilibeth +liling +lilith +liliya +lille +lillian +lilly +lily +lina +lincoln +linda +lindsay +lindsey +lindy +linny +linus +lionel +lisa +lise +liseth +lisette +lissie +liv +livia +liviana +livingston +liz +liza +lizabeth +lizbeth +lizet +lizette +lizzie +lizzimore +lizzy +lluis +lluvia +lock +logan +loida +lois +loiselin +lola +lombardet +lomelin +lona +longman +loni +lora +lord +lorea +loree +loreen +lorelai +loren +lorena +lorene +lorenza +lorenzo +loretta +lori +lorie +lorna +lorraine +lorri +lorrie +los +lotte +lotus +lou +louis +louisa +louise +lourdes +lourice +luba +luc +luca +lucas +lucia +lucian +luciana +luciano +lucienne +lucila +lucina +lucinda +lucio +lucky +lucrecia +lucy +lucya +lucyna +luibov +luigi +luis +luisa +luiza +luka +lukas +luke +lula +lunise +lupita +lurdes +lusanda +luz +luzelva +lya +lychota +lydia +lyla +lynda +lyndsay +lyndsey +lynn +lynne +løfald +m''lissa +ma. +maancy +mac +macarena +mackene +mackenzie +mackey +mad +madden +maddox +madeleine +madelene +madeline +madina +madison +mads +maegan +maestro +maeve +mafer +mafu +magali +magaly +magda +magdalena +maggie +magical +maha +mahamoud +mahan +mahnaz +maia +maika +maiko +maikol +maile +mairi +maitri +majbritt +majer +makuin +mala +malcolm +malcom +maleki +malene +malik +malin +malka +mallorie +malone +mama +manal +mandeep +mandy +manfred +manicure +manish +manlio +mannix +manolo +manon +manpreet +manrique +mantas +mantenimiento +manuel +manuela +mara +marc +marcel +marcela +marcella +marcelo +marci +marcia +marciano +marcie +marcin +marco +marcos +marcucci +marcus +mardian +maree +mareen +margaret +margareta +margarida +margarita +margee +margie +margit +margo +margot +marguerite +margy +mari +maria +mariah +mariam +marian +mariana +marianna +marianne +mariano +mariapuerto +marice +maricella +marie +marielle +marien +mariepier +marietta +marilia +marilou +marilyn +marin +marina +marine +marinela +mario +marion +marique +maris +marisa +marisela +marisol +marissa +marith +marius +mariya +marji +marjolaine +marjorie +mark +marko +markus +marla +marlen +marlene +marlin +marlon +marly +marnie +marnix +marquita +marsella +marsha +marshall +marta +martha +marti +martin +martina +martinat +martine +martinez +marty +maruk +marvic +mary +maryam +maryana +maryanna +maryanne +marybel +marybeth +maryblair +marycarmen +marytere +marytsa +maryu +maschione +masha +maskym +massage +massiliano +massy +master +matallana +mateo +mateos +mather +mathew +mathias +mathieu +mathilde +mathy +matias +matt +matteo +matthew +matthews +matti +matute +maura +maureen +mauricio +maurine +maurits +maurizio +mauro +maverick +max +maxim +maxime +maximilian +maximiliano +maximo +may +maya +mayalla +mayan +mayka +maylen +mayra +mazariegos +mazur +mcdonnell +mckasson +mckay +mckayla +mckenna +mckenzie +mckinley +mckinsey +mcmahon +mcmullan +me2 +meagan +meaghan +mechet +meddings +medeya +meenakshi +meg +megan +megas\n +meghan +megpg +megs +mehdi +meir +meissa +melanie +melchor +melesa +melicia +melinda +melisa +meliss +melissa +melissaa +meliza +mellissa +melody +melony +melotti +melvin +meme +menachem +mendez +merav +mercedes +mercurio +meredith +merldith +mert +meryl +mette +meyer +mia +miau +miaulu +micaela +micahel +micha +micha? +michael +michaela +michaella +michal +micheal +michel +michele +michelle +mick +migue +miguel +miguelina +mihail +miii +mika +mikael +mikaela +mikayla +mike +mikel +mikey +milagros +milan +milana +miles +milko +miller +mills +milos +milous +milton +mimi +mina +minako +minda +mindy +mirel +mirella +mirial +miriam +mirian +mirjam +mirna +mirta +miryam +misael +mischa +miss +missy +misty +mitali +mladin +mle +mockus +model +modelo +mohamcel +moira +moises +molly +mona +moncho +monia +monica +monika +monique +monisha +monse +monserat +monserrat +montse +montserrat +mooney +mooo +moore +mor +morad +moral +moran +morgan +morgane +morice +morris +morrissey +morten +morton +moshe +mr. +mrs +muhmed +mullane +muller +munari +munro +murphy +murty +musa +muy +mya +myer +myranda +myriam +myrthala +nadal +nadezhda +nadia +nadine +nadja +nagy +nahid +nahuel +nailya +najun +nalini +nalleli +nally +nana +nanan +nancie +nancy +nandy +nannette +nanny +nansy +naomi +narcisa +narelle +naseem +nasrin +nata +natali +natalia +natalie +natalies +nataliia +nataly +natalya +natascha +natasha +nate +natella +nathalia +nathalie +nathallie +nathalya +nathan +nathaniel +nathyla +nawfal +nayeli +naykeri +nazira +neda +nedim +neelam +neetha +neeti +negin +neha +neil +nejla +nele +nelly +nelson +nemorin +nerijus +nesha +nestor +nevis +new +newguest +nicci +nicholas +nicholine +nichool +nick +nicki +nickola +nicky/heather +nico +nicola +nicolaios +nicolaos +nicolas +nicole +nicolena +nicoletta +nicolette +nicolle +nidhi +nidia +niels +nigel +nikeeta +nikhita +niki +nikita +nikki +niklas +niko +nikolaos +nikoletta +nil +nima +nina +ninfa +ninive +ninsun +ninua +nisarut +nisha +niss +nissim +nitsanne +niv +niveditha +noa +noah +noberto +noe +noel +noelle +noemi +noise +nok +nola +nolan +noma +nomi +noor +noorulain +nora +norbert +norberto +noreen +norelis +norena +norman +norris +nosheen +not +nourba +novian +nozomi +nqabakazi +nthenya +nugent +nui +nupur +nuria +nutrivec +nuttall +nydis +nyere +o''brien +oakley +ocallaghan +ocean +octavia +octavio +ofa +ofek +ofmara +oftal +ohayon +oihana +oja +oksana +ola +olaf +olalla +olena +olga +olivenza +oliver +olivera +olivia +olivier +ollie +olof +olsen +oly +omalley +omar +omri +oona +ophira +oracio +oriana +orlanda +orlando +orry +orvin +orysia +orzai +osborn +oscar +osiel +osman +osvaldo +osvando +osvelia +oswaldo +ota +otilia +otra +otto +owen +o´farrell +pablo +pabo +paco +paddy +paid +paige +paizley +palle +palma +paloma +palpu +pam +pamela +pandora +paola +paoli +paolo +papa +papadimitriou +para +pari +paris +parker +parking +parrish +parul +parvati +pascal +pascale +pasquale +pat +pathmanathan +paton +patrcio +patric +patrice +patricia +patricio +patrick +patrizia +patti +patty +pau +paul +paula +paulette +paulien +paulin +paulina +paulina/ +pauline +paulinehorwits +pawluk +paz +pazcual +peabody +pearl +pecchiar +pedi +pedicure +pedro +peggy +peliroja +pemberton +penelope +penny +penthana +pepe +pere +perihan +perla +pernilla +pernille +perry +persis +pete +peter +petra +petter +petty +pfahlert +phadke +phaedra +pham +philinda +philip +philippe +phillip +phillipe +phillipp +phillippe +phillips +phoebe +photo +phung +picazo +pier +piere +piero +pierre +pietro +pietrocapitaneo +pilar +pilates +pima +piotr +piper +pit +pizanti +pleamon +plews +plint +polina +polly +pony +poonam +poppy +por +porfirio +port +poul +pouneh +powell +prakash +precious +preeya +preston +pricilla +priscila +priya +prof +propin +propina +propinas +prudence +prudy +prue +prueba +publico +puja +pyzikiewicz +quetzal +quick +quinlan +quinn +raanan +rachael +rachel +rachele +rachelle +rachid +racquel +radnedge +radovan +rae +raeleen +rafael +rafaela +rafal +raffael +raffaella +raffi +raffie +rahel +rahm +raimondo +raimundo +raina +raine +rainer +rainy +raj +rajorshi +ralf +ram +ramandeep +ramchandra +ramirez +ramiro +ramm +ramon +ramona +ramraghi +ramses +randa +randall +randy +rangel +rania +ranjani +rannveig +raoul +rapoport +raquel +rashid +rasika +rasmus +ravi +ray +rayco +raymond +raymundo +raúl +rchneiderova +rebeca +rebecca +rebecka +rebekah +reddin +reed +reem +regan +reggie +regina +regine +reina +reiniel +remo +remove +remund +ren +rena +renata +renato +renaud +rene +renee +renetao +reno +renta +rentas +reparacion +reparando +reserva +reserved +residencia +rest +restauran +restaurant +reta +reto +retreat +rey +reynaldo +reza +rhee +rhianna +rhonda +rhys +ricarda +ricardo +riccardo +rich +richarc +richard +richardson +richie +richika +rici +rick +ricki +rickie +ricky +rigoberto +rigoderto +rihard +riki +rikki +riley +rima +rimal +risa +rishi +rita +rivkah +riza +rizwan +rizzo +rob +robb +robbie +robbin +robert +roberta +roberto +robertson +robin +robinson +robson +robyn +rocco +rochell +rochelle +rocio +rocko +rodgers +rodney +rodolfo +rodrigo +rogelio +roger +rogerio +roisin +roland +rolando +rolf +romain +roman +romane +romina +romualdo +ron +rona +ronald +ronise +ronit +ronja +ronni +rony +room +rory +rosa +rosalina +rosalind +rosana +rosanna +rosanne +rosario +rose +roselli +rosemary +rosi +rosie +rosier +rosina +rosing +rossana +rossane +rossi +rosy +rowan +roxana +roxane +roxanne +roxie +roxy +roy +royce +royden +royer +rozelle +rubem +rubemm +ruben +rubi +ruby +ruchika +rucks +rucksana +rue +rumina +rune +rupa +rusnakova +russ +russell +ruth +ruthie +ruthy +ruvindya +ryan +ryanne +rylan +rylee +saagar +saam +saba +sabah +sabina +sabine +sabino +sabra +sabrina +sacha +sachpreet +sadd +sahie +sahl +sahle +salamone +salavador +salazar +sallie +sally +salmon +salome +salvador +salvatore +sam +saman +samanta +samantha +samar +samara +samaria +sami +samir +samira +sammy +samson +samuel +sandeep +sandra +sandrine +sandy +sangra +sanjoy +sanna +sanne +sansara +santa +santiago +santino +sanuel +saphia +sapna +sara +sarah +sarai +saranel +saraswathi +saremi +sari +sarina +sarmiento +sarrah +sasha +sashak +saskia +sassy +sat +satin +satish +satori +satya +saunders +sauri +savanna +savannah +saveria +savhanna +scalp +scarlett +schanita +schmidt +scholarship +schratl +schroeder +schubert +schwemmer +scorza +scott +scotty +seamus +sean +seana +seb +sebastian +sebastien +second +segundo +seidel +selamamt +selena +selene +selin +selina +semhar +sepideh +sera +serdar +seren +serena +sergio +servaes +servicio +sesion +seth +seval +severo +señora +shabon +shadi +shadia +shae +shahab +shai +shakira +shalane +shalev +shalita +shamsa +shan +shana +shanaz +shane +shanell +shani +shanna +shannan +shannon +shantal +shar +sharaia +shari +sharla +sharnjit +sharon +sharookh +shashi +shaun +shauna +shaunna +shawn +shawna +shay +shayna +shayne +shazia +sheehan +sheila +shela +shelbey +shelbie +shelby +sheldon +shelley +shelly +shenna +shera +shereen +sheridan +sherlock +sherri +sherrie +sherry +sheryl +shewatsehai +shewta +shideh +shiela +shigei +shigeko +shilpa +shipra +shira +shireen +shirelle +shirikant +shirley +shivani +shlomit +shmuel +sholeh +shonali +shoula +shrabya +shreya +shun +sian +sibo +sibylla +sibylle +sidne +sidonie +sienna +sienne +sierra +siffat +signe +silk +silke +silva +silvana +silvia +sima +simecek +simg +simmons +simon +simona +simone +sin +sireesha +sirena +sitara +sivanne +sjoerd +skaro +skolska +skye +skyler +slava +sloan +sloane +sloat +smeloff +smith +smitha +social +socrates +soe +sofia +sogol +sokphea +solana +solange +solene +solomon +somaiya +sonali +sonia +sonya +soo +soohyun +sopal +sophia +sophie +soraya +soseh +soshi +souli +sound +sovay +sp1.ltd +spa +special +spencer +spike +spooner +sr. +srisakuna +stacey +stacia +stacy +staff +staley +stallard +stan +stangneth +stanislas +stanley +staple +starr +stasy +stavroula +stefan +stefana +stefani +stefania +stefanie +stefano +steffanie +stefii +stefny +stefy +stella +stepahanie +stephane +stephanie +stephany +stephea +stephen +stephenson +steve +steven +stevhen +stevo +sthephen +stonnie +storage +storm +story +strom +strong +stuart +stylist +sue +suet +sufi +sujei +suma +summer +summers +sun +sunawin +sunayna +sunny +sunshine +suraj +sureli +surrie +susan +susana +susannah +susie +sussie +susur +susy +suzan +suzannah +suzanne +suzie +suzy +sven +sybille +sydney +sylvain +sylvia +sylvie +t''neille +t''nisha +tabina +taffy +taghi +tahir +tahni +tal +talbot +tali +talita +talitha +taly +talya +tamara +tamay +tami +tamim +tamina +tammy +tamsin +tanguy +tania +tanja +tanner +tannis +tanya +tanyia +tao +tara +tarah +tarot +tarra +tarren +taryn +tasha +tasiopoulos +taso +tata +tate +tatia +tatiana +tauni +tawnie +tawny +tawnya +tayler +taylor +tayo +tba +tbd +teacher +teachers +teale +teck +ted +tedda +teddy +teegan +tegan +tehmina +tejal +telsys +temma +tener +tennielle +teresa +teri +terri +terry +teryl +tes +tesi +tess +tessa +test +testing +tetiana +thaci +thai +thais +thalia +thanassis +thanh +thania +thea +theda +theodore +theresa +therese +thibaut +thierry +third +thomas +thorbjoern +thorsten +thu +thue +tiff +tiffany +tiffeani +tilo +tily +tim +timothy +timur +tina +tine +ting +tip +tips +tirma +tisha +toallas +tobi +tobias +tobie +toby +todavia +todd +tolin +tom +tomas +toni +tony +tonya +tooner +tootsie +tori +tour +touriya +trabajos +trabando +trace +tracey +traci +tracie +tracy +tracye +tranta +travis +trefor +trenton +tressa +trev +trevor +treweek +tricia +trina +trinity +trish +trisha +trista +tristram +troy +tré +tulik +tulin +tulip +tuongvy +twyla +tydeman +tye +tyler +tyra +tyrone +tzipora +ula +ulises +ullises +ulrika +ulrike +ulrikke +una +unders +urban +urlich +ursina +ursula +usiel +uvljv +uziel +uzma +vaernewyck +vagram +vahe +vainius +vaishali +val +valentina +valentine +valeri +valeria +valeriaa +valerie +valeriya +valiance +van +vandorsselaer +vanesa +vanessa +varam +vartan +ved +veida +velina +venkata +venta +ventas +venture +vera +verena +veritl +veronia +veronica +veronik +vesi +via +viaadventures +viaventure +vibeke +vicente +vichelle +vicki +vicky +victor +victoria +victorino +vieto +vignau +vijay +viki +vikki +villa +villamon +vincell +vincent +vinita +vinny +violaine +violen +violoncella +vip +virgi +virgini +virginia +viridiana +visitor +vit +vitorio +vittoria +vittorio +viven +vivi +vivia +vivian +viviana +vivien +vivienne +vjeffrey +vlada +vladimir +vlastimil +votech +vyda +wael +wak +wal +walcot +waldell +walk +walker +walkin +walking +wall +wallace +wallk +walter +walterio +walton +wanda +wang +wardley +wardrobe +warn +warneke +warnett +warren +waser +watson +wayne +weingraber +welch +wen +wendy +werner +wes +wesley +west +whai +wheatley +whitnee +whitney +whittaker +wife +wight +wii +wilber +wilkie +will +willem +william +williams +willian +wilson +wlk +wolfgang +woods +wren +wright +wyatt +wylie +xasmin +xavier +ximena +xomara +xuan +yabiku +yadi +yadira +yael +yahir +yam +yamel +yamila +yamile +yamuna +yanais +yane +yaneli +yanie +yanik +yannick +yanya +yareni +yazmin +yeliz +yer +yeraldine +yessica +yev +yeva +yifei +yigit +yimi +yin +ying +yoana +yoga +yohara +yolanda +yonatan +yonos +yossi +youmna +yovana +yozune +yuko +yulan +yury +yuval +yuvi +yvan +yvette +yvonne +zach +zachary +zack +zackery +zak +zayan +zeinab +zena +zhao +zoe +zohe +zoi +zou +zsuzsanna +zuleica +zuzana'; + +WITH src AS ( + SELECT LTRIM(RTRIM([value])) AS name + FROM STRING_SPLIT(REPLACE(@raw, CHAR(13), ''), CHAR(10), 1) +) +INSERT INTO #first_name(first_name) +SELECT name +FROM src +WHERE name <> N''; + +IF OBJECT_ID('tempdb..#surname') IS NOT NULL + DROP TABLE #surname; + +CREATE TABLE #surname ( + surname NVARCHAR(200) NOT NULL +); + +SET @raw = N' +abad +abaldo +abarca +abbott +abbruscato +abdias +abel +abigail +abito +abogada +abogado +aboud +abouon +abraham +abramo +abrams +abramyan +acairol +acevedo +acosta +acra +adair +adam +adames +adams +adara +addis +adela +adellano +adrian +adriana +aella +agass +agin +aguilar +aguilera +ahaa +ahearn +ahmad +ahmed +ahner +ahrens +aida +ailloud +airbnb +aistara +aistars +ait +akavova +alain +alama +alan +alana +alanis +alarcón +alavi +alba +albano +albarran +alberto +albin +albiter +alcalde +alcantar +alcapone +aldana +alegria +alegrias +alejandra +alejandro +alekeeva +alengria +alevizos +alex +alexander +alexandra +alfond +alger +alhondo +aliya +all +allen +allison +allum +ally +alma +almonte +aloisio +alonso +alp +alper +alpert +altamirano +altman +alvarado +alvarez +alverà +alzner +ama +amadea +amansala +amansala2 +amarainy +amaro +ambraisse +amedeo +amigos +amin +aminoisharei +amiralai +amorim +ampudia +amra +ana +anand +and +andemariam +andersen +anderson +andra +andrade +andrea +andree +andres +andrew +andrews +andsaldi +anguera +angulo +angus +anja +ann +anna +annabel +annie +annitto +annka +anonymous +ansel +ansley +antoci +antoine +antonio +antunez +anuk +aponte +aque +aral +aranda +arcery +arciniejas +arcos +ard +ardalan +arellano +arellanos +arenas +argáez +arianna +arias +ariel +arjona +armali +armantrout +armario +armstrong +arnet +arnold +aron +arons +arredondo +arriaga +arroyo +art +arthur +arturo +ascencio +ascoe +ascotia +asencio +ash +ashbaugh +ashiko +ashlegh +ashmore +ashtiani +ashton +askew +aspell +aspinwall +assistant +assor +astron +athureliya +atif +atighechi +atilano +atkinson +attanasova +atteberry +attolico +atwood +augustine +augusto +avery +avila +aviv +azadian +azevedo +azoulai +azpeitia +baal +baarman +babcock +babtista +backus +bacon +badillo +baez +baeza +bagheri +bah +bahr +bailey +baillie +bailliu +bajda +baker +balarezo +balazs +baldasare +baldwin +bales +bali +ballantyne +ballard +ballen +balliet +balsano +balt +baltzley +bamberger +bamford +banati +banford +banik +banin +banks +bar +bara +barahona +barba +barbaleticia +barbara +barber +barboni +barbé +barcenas +bari +barkley +barksdale +barlow +barnard +barnes +barnett +barona +barone +baroni +barr +barraza +barreneche +barrenechea +barrera +barrios +barrons +barry +barshan +bartell +bartheldi +bartolero +barton +bartos +bary +basilio +basman +bass +bassan +batchelor +bate +batey +batuski +bauer +bauers +baum +bauman +baumstein +bausa +baxter +bayardo +bayat +bbc +beach +beachclub +beachcub +beah +beahc +beaird +beaton +beattie +beauchamp +beaumont +beauregard +becerra +bech +bechtel +beck +becker +beckerman +beckert +beckstrom +beddingfield +bedi +bedsole +bee +beene +begneaud +behr +behre +beier +belding +belgarde +beli +belinda +belk +bell +bellando +bellinger +bellofatto +belmares +belmonte +belosevic +beltran +belz +belzberg +benavidez +benbow. +benchemhoun +benegas +benelbas +benesh +benhamu +benidze +benitez +benjamin +bennett +bennoune +benny +benson +benz +berardi +berdejo +berdichevskiy +berezdivin +berg +bergeron +bergonzi +bergstein +berkowitz +berman +bermejo +bermúdez +bernales +bernard +bernardini +bernstein +berse +bertha +bertolino +bertone +besancon +best +betsy +bettini +betts +betz +beurteaux +bezborodoff +bhojwani +bianchini +bibancos +bibas +bibiana +bibr +bicicleta +biddlecombe +bidot +biegel +biehn +bieniek +biersack +biggi +bike +billingsley +bina +biondo +bird +birnbaum +biros +bishop +bishri +biskay +bisson +bitak +bizari +black +blake +blanc +blanco +blando +blanken +blatt +blauser +blefari +blein +blizzard +bloggs +blomquist +blomqvist +bloqueado +bloqueo +bloqurwo +blount +blyth +bob +bobadilla +bobish +bobroff +bock +bogdanski +boger +bogert +boggi +bohm +boice +bois +boiz +bokhari +bolam +bolin +bolton +boncelet +bondarev +bongard +bonhotel +bonicolini +bonnet +bonnin +bonno +book +bookman +booz +bordeman +borenstein +borman +bornstein +borock +borson +boseman +bosque +botly +bottiger +boublil +boufeas +boulos +boundy +bouras +bourquin +boutique +boveri +bowden +bowen +bowers +bowman +bowser +box +boxer +boyd +boyes +bozic +braaten +bracamonte +bradley +brady +braga +brager +braje +brambah +brandin +brandon +branen +branoff +branson +braun +braunschwel +brawley +brazeau +brecht +breese +bregasi +bregman +brendling +brennan +brent +breslerman +bressan +bri +bricker +brickley +brida +bride +briese +briggs +briks +brillante +brimmer +brinkley +brito +bro +broadribb +brocchetta +brock +brody +bronstein +brook +brooks +brosen +brotherton +brown +brudzynski +bruhmuller +bruner +brunet +bruning +bruno +bryan +bryant +bryce +bryson +bts +buard +buchanan +buckley +buddharaju +budini +budoff +bueno +bugeau +bugovics +bukhari +buller +bullrich +bumb +burack +burblies +burckhardt +buret +burg +burgess +burgoyne +burns +burridge +busk +bussey +butcher +butler +butterfield +butzer +byargeon +byers +byrne +cababie +caballero +caban +cabanas +caborde +cabral +cabrera +caddick +caffaratti +cahoon +cal +calafell +caldwell +cale +calega +callahan +callaway +callum +cama +camacho +camara +cambas +camerlengo +cameron +camilla +campbell +campion +campos +canadian +cancelada +cancelado +candlish +canfield +cannady +cannestra +cano +canseco +canto +cantú +cappon +caravantes +caraza +carberry +carbone +cardell +cardenas +cardinal +cardona +cardone +carey +carissa +carli +carlomagno +carlos +carlson +carlyon +carme +carmen +carment +carnegie +caro +carol +caroline +caron +carpio +carr +carranza +carrasco +carrera +carreras +carrillo +carrion +carroll +carson +carter +cartwright +caruso +carver +carzoglio +casabianca +casals +casanova +casares +casasola +cascio +case +cash +cashin +casner +cassandra +cassar +castanares +castanos +castañeda +castañer +castellano +castellanos +castillo +castner +castro +catania +cate +catherine +catona +cauchi +cautela +cavagnuolo +cavallaro +cavanaugh +cave +cavegn +ceballos +centeno +cera +cerbone +cervantes +cervera +cesar +cespedes +cetina +cevallos +cezar +ch18 +chacon +chadderton +chagnon +chaia +chalmers +chamberlain +chambers +champagne +chance +chandhoke +chandler +chandor +chang +chani +channing +chaparro +chapman +charbonnier +charest +charge +charles +charlotte +charters +chartouni +chartrouni +chasteen +chau +chavez +chavo +chechik +checlers +chedikian +chellen +chelsea +chen +chepe +cher +cheres +cherit +cherry +chesney +cheung +chevalier +chew +chiacchierini +chianese +chiappone +chin +chinta +chiosso +chitre +chiñas +choi +choresh +choucri +chris +chrisman +christensen +christian +christie +christine +christoph +christopher +christopherson +chrétien +chuck +chunya +ciardelli +ciau +cichy +ciconte +ciminelli +ciobarnu +cioffi +cioffrese +cioncolini +ciotola +cipriano +cirsa +cito +ciuk +clabecq +claesson +claire +clancy +clare +clark +clarke +clary +class +claudia +claugus +claus +claypool +clement +clifford +clifton +clise +clough +clunie +clymo +coakley +cobabe +cobian +cobos +cobrarle +cochrane +coco +codi +coehn +coffman +cofinas +cohen +colabella +colabianchi +colby +cole +colella +coleman +colentinha +colin +collado +collection +colleen +colligan +collins +collinsworth +colpaert +colvin +colwell +combs +compagni +con +conde +connelly +connely +conner +connolly +conroy +contador +contreras +conway +cook +cooke +cookler +cooley +coomber +cooper +coopersmith +copersino +corbin +corcoran +cordova +cordovia +cordt +corey +corolla +corona +coronado +corradino +corrado +corrales +corson +cortes +cortina +cortinas +cosette +cota +cotley +cotter +couch +coucheron +coughlin +cowan +cowden +cowdrey +cox +coyote +cozik +cozine +crager +craig +crane +crawford +creighton +crenshaw +crighton +cristina +critchley +crosby +crowther +crumley +cruz +cruzcosa +cuatro +cuenta +cuentiador +cuevas +cullinae +cung +cunningham +curbilié +curri +curtis +cury +cutlet +cutwright +cyprian +cyrus +d''arce +dadowski +dagelman +dai +daignault +dajani +dakhil +dalecky +dalton +damas +damico +damien +dana +daniel +daniela +danielle +daniero +danna +dannelle +danziger +darcas +daria +darlene +darsey +das +dascal +dasher +dasilva +dass +dattilo +dattolo +daufeldt +daugther +daum +david +davidian +davidson +davies +davila +davis +davlin +dawso +dawson +day +dayala +deakin +deamoer +deangelis +deare +dearen +debeer +debenardi +decamp +decca +dedonato +defelice +defever +deighton +del +delduca +delgado +delhaye +delia +delion +dell +della +dellar +dellinger +deloustal +demmel +denglee +denious +denis +denise +dennis +deoliveira +deppe +deppen +derdzinski +dermer +desgagne +deshayes +desmelik +detris +detwiler +devine +devletsah +devon +dezur +dhatri +diamant +diamond +diana +diaz +dibono +dick +dickey +dickson +diener +dies +dieter +diez +dimaria +dimas +dimitrov +dina +dineen +diner +dinn +dints +dion +dionicio +diozuz +dipalma +dipalo +diplas +diquattro +dishell +dismore +ditomasso +dixon +dlatt +dldlddl +dobnikar +dobol +dobson +doherty +dohrmann +dolfi +domingue +dominguez +domis +donald +donarini +donde +donghua +donicht +donna +donne +donner +donovan +doolee +doran +dorantes +dorward +dos +dosso +doucet +dougan +douglas +dove +dovi +downer +doyle +drabik +drago +drake +draxl +dreyfous +driller +dromgool +drower +druker +dryja +dubaele +dubrino +duchesneau +duchin +ducong +dudek +dueren +duff +duffield +duffy +dugald +duggan +duhayot +duhs +dum +duncan +dunn +dunne +duplicate +duprat +duran +durand +durham +d’andrea +eakins +ealding +earl +eason +easton +eaton +echeveriia +eckler +eddy +edelsten +eden +edgell +edlin +edment +edmonds +edmondson +edmund +eduardo +edut +edwards +egan +eguiarte +ehmann +ehrlinger +ehrmann +eichel +eichensaer +eidelstein +eiseman +eisenberg +ekholm +ekman +elaco +elaine +elder +elena +elfassi +elford +elgrably +elharrar +elias +elisabeth +elizabeth +elizalde +elkamouny +elkousy +elleby +ellen +ellie +elliott +ellis +ellison +elma +emde +emerson +emilo +emily +emma +emmanuel +empleada +employee +enbody +encargada +eng +engel +engholm +engle +english +entrenador +epperson +epps +epstein +erhard +erickson +erika +ernesto +ertweiler +escajadilla +escalante +escalera +escamilla +escobar +escudero +esmail +espadas +espinel +espinosa +espinossa +esquivel +estacio +estanislao +esteban +esther +estivalet +estrada +estrella +estuardo +eszlinger +ethan +ethans +etkin +etten +etzweiler +evangelisti +evans +eve +evelyn +evens +everett +ewald +ewertsen +exline +extra +extras +eyser +ezratty +faas +fabian +fabrizio +fadol +fagen +fahy +fairbank +fairchild +faircloth +faitell +falagario +falco +falcone +falkenburg +fallas +fandos +farahay +farfan +farler +farmer +farwell +faulkner +fauvain +favale +favalero +fdfsdfd +featherstone +fedak +fedrizzi +feese +fein +feinberg +feldenkris +felder +felipe +feng +fernandes +fernandez +fernando +ferner +ferragamo +ferragni +ferrand +ferrar +ferraz +ferreira +fiat +fierro +figa +fikus +filer +finer +finiochetti +fink +finkel +finn +finzi +fiorino +first +fisco +fisher +fitschen +fitzgerald +fitzgibbon +fitzgibbons +fitzmaurice +fitzpatrick +flaghtery +flaherty +fleishman +fletcher +flickenger +flikstein +florent +flores +florez +floyd +flugal +fogarty +foglia +folberg +foley +folger +foltmer +font +food +for +ford +foreman +forness +forrester +forsythe +fortini +fortun +fortuna +foss +foster +fouladgar +fowler +fox +franco +frank +frankiewicz +frankum +franzén +frauen +frazer +frazier +frederick +frederik +fredrick +fredriksen +freeberg +frese +frewin +freyn +friadnar +frianela +friedland +friedman +friedner +friend +friends +friens +fries +frischkorn +from +froment +froome +frost +fudge +fuller +fulton +funnes +fyodor +gabilondo +gabour +gaedke +gaffney +gaidacheva +gaiera +gaind +gaither +gala +galardi +galaz +galindo +gallagher +gallardo +gallegos +gallery +gallo +galloway +galsky +galvez +galvin +gama +gambaccini +gamble +gamboa +gamero +gameron +gana +gangopadhyay +garb +garcia +gardiner +gardner +garduños +garibay +garibo +garica +garn +garrett +garrido +garrigos +garrison +garry +garza +garze +garzon +gascoigne +gassiraro +gastaldi +gastelum +gaucher +gaudin +gauthier +gavin +gavira +gaviria +gaxiola +gayer +gazzaz +geckos +geier +geissler +geller +generador +genetelli +genis +genovesr +gentile +george +georges +gerardo +gerassimo +geren +germann +geronimo +gershman +gershoni +gestin +gestuvo +geudelekian +ghandour +ghebreyesus +ghent +gherlone +ghlaissia +giamo +giangrasso +gibb +gibbons +gibbs +gibson +giddings +giessen +giggan +gil +gilbert +gill +gillman +gimena +gina +gioia +gionta +giordanengo +giragosian +girard +girffiths +girlfriend +gitano +gitterman +giugno +giuseppucci +givner +glanell +glanville +glazer +glemarec +glenn +glover +gluck +gobbee +godat +godefroy +godoy +goebel +goebl +goel +goergen +goihman +going +goit +golby +gold +goldberg +golden +goldfarb +goldman +goldstein +goldstone +golino +golitz +gomez +gonnella +gonzales +gonzalez +gonzallez +gonzalo +good +gooden +goodhart +goodis +goodloe +goodman +goodridge +goodsell +goodwin +goodyear +gordon +gorduño +gore +goskov +gosling +gossow +gottfried +gottlieb +gottreich +gotwals +goulet +goutal +goya +gozla +gpp +grace +gracey +gracia +gracida +grady +graham +granato +graniel +grant +grapes +gratton +gray +grazia +grecu +greenberg +greenberger +greene +greenfield +gregori +gregorich +grenfell +gretta +grey +grieco +griffen +griffin +griffith +grifit +griglio +grigoriou +grills +grinius +grodin +groenevald +groeskamp +groshek +gross +group +grubb +gruffi +grumhaus +gruson +guadalupe +guajardo +guay +guerin +guerra +guerrero +guest +guffey +guia +guide +guie +guiliani +gulisano +gunn +gupta +guralnick +gurievsky +gurrola +gustafson +gutierrez +guzman +guérette +göppinger +haaning +haas +haass +hab +hackworth +hadland +hadson +haessler +hagendorf +hahn +haid +haider +haimo +haines +hajjar +halax +halcyon +halenda +halford +hall +halpern +halpin +hamilton +hamingway +hammer +hammerich +hammond +hampton +hanel +hannah +hanners +hansen +hanson +harari +harding +hardy +harendorf +haritoff +harmon +harold +harrington +harris +harrison +harry +hart +hartwig +harvey +harwick +hashemi +hass +hasselkjaer +hassid +hatcher +hatzenbiler +hau +hauer +hausafus +hause +hauser +hawes +hawila +hawkins +hawks +hayden +hayes +hayford +hayhurst +hayward +hazel +hazlehurst +healy +heap +hearn +heather +hector +hedeya +hedquist +heemskerk +hegeler +heggle +heidenberg +heimann +heinmets +heinzman +heipel +heiser +helen +helfand +helles +heller +helmore +henderson +henkin +henley +hennessey +hennessy +henrique +henriquez +henson +herbert +herberth +herceg +herd +heredia +herman +hermano +hermansson +hermogeno +hernan +hernández +herrera +herrerra +herrick +herrington +herrmann +hershfield +herzberg +herzfeld +hessdorf +hetz +heus +heydt +hickey +hickman +hickson +hiebler +higgins +hilario +hiley +hill +hillebrand +hills +hilyer +himes +himley +himmel +hindley +hindsley +hinman +hiram +hirsch +hirshfield +hively +hobart +hobbs +hockley +hoder +hodnett +hoekstra +hoffman +hold +holdt +holland +holleron +holliman +hollingsworth +hollman +holme +holtz +holwe +hooks +hoole +horgan +hori +horn +horne +horning +horstmann +hotchkiss +hotel +hotesl +houston +hovananian +hovarth +hovda +howard +howell +hoyos +hrycyk +hsu +hudak +hudepold +hudgins +hueber +hugh +hughes +hughston +hugonot +hui +huish +hulit +huneycutt +hunt +hunter +huntsman +huot +huppmann +hur +hurbace +hurbase +hurley +hurlock +hurtado +hurty +hurwitz +husar +husband +hussein +hwang +hydock +hyland +hyun +häusler +ian +iasiello +ibarra +ibarrondo +icaza +icenhower +ifat +igartua +iglesias +ignacio +ignatius +ilda +ilya +imwalle +indigo +infante +ingoglia +ingram +innaccone +inzani +ioannis +ionescu +iqbal +irani +ireland +irene +isaacs +isaballe +isabel +isabelle +isacson +iskandar +islas +ismael +isobel +israel +issacs +italiano +italo +iutici +ivanna +ivas +iversen +iwai +iyer +izzy +jack +jackintell +jackson +jackute +jacob +jacobs +jacobson +jaconsen +jacqueline +jaffe +jagode +jagust +jaime +jaka +jamali +james +jamieson +jamner +jan +jana +jander +jane +janet +janzen +jaramillo +jared +jason +jasper +javier +jayaram +jazo +jean +jefaza +jefesita +jeffs +jellins +jen +jenkins +jennie +jennifer +jenny +jens +jensen +jeremy +jesica +jessberger +jesse +jessica +jessie +jessup +jevtic +jeyapal +jillian +jimenez +joana +joanna +joanou +jobbitt +jocelyn +jocuns +johannes +johannsen +johansson +john +johnsen +johnson +johnston +jolliffe +jones +joo +jordan +jorgensen +jose +joseph +josey +joslin +joy +joyce +jozic +juan +juarez +jubinski +judy +juge +julee +julian +juliana +julie +jully +june +justin +juston +jylkka +jyung +kaalberg +kachmarchyk +kaelyn +kaesmann +kaicher +kaiden +kaiser +kalach +kalincheno +kallick +kambach +kameron +kaminer +kaminski +kandohla +kanowitz +kanowsky +kantrowitz +kanu +kaplan +kaplowitz +kardinal +karen +karina +karla +karp +karr +kartman +kasey +kash +kassamani +kastner +kasumov +katafias +katalay +kate +katherine +kathryn +katrina +katsma +katz +kaufman +kaushal +kavanaugh +kay +kaye +kaz +kazam +keanded +kebede +keefer +keegan +keeley +keene +kehnscherper +keiser +kelleher +kelley +kelly +kelsey +kemp +kempf +kenck +kendall +kenney +kennyk +kent +keough +kern +kerr +kersten +kest +ketchum +keutenedjian +khalaj +khalfina +khalsa +khambatta +khan +khanna +khasawneh +kidd +kierulf +kildrow +kim +kinaci +kinasz +kind +kindon +king +kinglake +kinkead +kinnamon +kinney +kinsey +kipling +kircalioglu +kirk +kirschner +kirszenbaum +kirt +kiser +kitchen +klages +klaric +klein +kleinerman +kline +klish +klopp +kluesner +klum +knauf +kneschaurek +knetter +knipe +koc +koch +kocur +koehler +kolb +koleman +kollar +koloski +komorowska +koning +kopel +kopf +koral +koreeva +korrow +korth +kortman +kougl +kovan +kowkobany +kozlowski +kozlowsky +kraines +kramberg +kramer +kramm +krammerer +krantzberg +kravchenko +kravis +krawczyk +kreitman +krestow +krief +krim +krishnamurthy +kristen +kristiansen +kristin +kristine +kroeger +krooke +krotowski +kruidbos +krulewitz +krumholz +kröger +kubt +kuehn +kuensell +kuhn +kumar +kunal +kundler +kunin +kuntze +kupcik +kuris +kushma +kustresa +kusumgar +kwan +kwiatek +kyeron +kyle +laansoo +labelle +labier +lachance +lachlan +lack +lacy +laehy +laforce +lage +lagreula +laila +laing +laird +lake +lalanne +lam +lama +lamas +lamb +lambarri +lancaster +landa +landis +landry +landy +lange +langer +langley +langowski +lanier +lansburgh +lansdown +lapin +lapizco +laporte +lara +laredo +larigakis +lasting +latta +laufer +laura +lauren +lauria +lavalle +lavallée +law +lawler +lawrecence +lawrence +lawson +lawyer +laxhar +layden +lazaro +lazaros +leader +leal +lean +leanne +leatham +leavy +leder +ledesma +ledoux +leduc +lee +leff +lefrock +legorburu +lehman +leibler +leigh +leith +lekach +lemeshko +lemm +leon +leonard +lerner +lesaffre +lesem +leticia +leung +leuschen +leveque +levin +levine +leviton +levy +lew +lewin +lewis +lewison +lewiston +lheureux +lian +liberman +lichtenstein +liebendoerfer +liebl +liedtke +lillian +lima +limon +limonchi +lin +linage +lincoln +linda +lindemann +lindner +lindsay +line +liney +link +linkoln +links +linnell +lipcon +lipkin +lipscomb +lipson +lisa +litterer +liu +liutjen +livia +llabres +llano +lliakis +lloyd +llse +loba +lobello +local +locker +lockwood +lodato +logbo +loghmanian +logiurato +logue +lohrer +lola +london +long +longo +longwave +looker +loop +lopez +lopresti +lorberbaum +lord +lorden +lorena +lorton +losardo +lottenburger +lotus +louis +louisa +louise +lovell +lovering +lovretovich +lowe +lozano +lubrenecki +lucas +lucentini +lucille +lucy +ludlow +ludy +lugo +lui +luise +luk +luke +lukich +lumb +luna +lund +lunsford +lustgarten +lutin +lutz +lux +luxton +lyall +lykken +lynch +lyndsay +lyons +lytle +macenzie +macer +macey +machado +machialena +machiavelo +machorro +macia +macias +maciborski +maciejewski +macinnis +mack +mackay +mackenzie +mackinnon +macknxziie +maclean +macneille +macon +madaleno +madden +madera +madigan +madrini +maecha +maestro +mafer +magana +mahaney +mahina +mahley +mahoney +mahuad +mailhot +maitland +mako +makris +maksoud +maldonado +malesenka +malik +mallari +maloof +malouf +malvarosa +malvido +maman +mamula +mandel +mandzuka +mangalji +mangroves +mangum +mani +manicure +mann +manning +mannix +manny +manrique +manson +mansour +manspeizer +mantice +mapes +maqsudi +maranda +marcela +march +marchant +marchesi +marchetti +marchetto +marcia +marcius +marcko +marco +marcus +marczuk +maren +marey +margaret +margolin +margot +margron +maria +mariano +marie +marika +marila +marileni +marimar +marin +marinho +marino +marinos +marinozzi +mario +marion +mark +markie +marks +marli +maroevich +marotta +marquez +marquina +marrocchino +marrone +marshall +marshfield +marta +martell +martha +martin +martina +martinez +martinkevich +marty +marukea +marvin +marzuki +masaje +masiero +maslen +masna +maspes +massage +massalas +massicot +massingill +master +masterson +mata +mather +mathilda +matluck +mattax +matthew +matthews +matton +matute +mauran +maureen +mauricio +mavris +mawer +max +mayer +maynard +mayor +mayotte +mazariegos +mazmanyan +mazurek +mazza +mazzara +mbakam +mcauley +mcauliffe +mccabe +mccafferty +mccambly +mccane +mccann +mccarell +mccarthy +mccavitt +mcclellan +mccourt +mccoy +mccreight +mccue +mccullough +mcdermott +mcdole +mcelroy +mcgiffin +mcgilvray +mcgrady +mcgraw +mcgregor +mcintyre +mckenna +mckinley +mckinnon +mckitterick +mclaughlin +mclean +mclellan +mclurg +mcmaster +mcmurdie +mcneely +mcniff +mcsweeney +mctamany +mcvey +me2 +mechado +mecia +medel +medina +meenan +megan +meginness +mehmet +mejia +mejilla +melchior +melia +melinger +melissa +melissas +mello +melman +melnyk +melton +mena +menaglio +menasche +mendez +mendlewicz +mendoza +mendy +menke +ment +menzel +mercado +mercanti +merced +merck +merlot +merydith +meré +mesirow +messina +messmer +metcalf +metron +metsinger +mettel +mettner +meyerer +meyers +meyerson +meymarian +meza +mgrdechian +michael +michel +michelle +michels +middleton +mielcarek +mientka +miguel +mihailov +mila +milan +milea +miles +milgram +millard +miller +millner +mills +milosavljevic +milss +miner +minio +minionis +minnick +minzer +miranda +misener +misios +mitchell +mitra +mitrani +mitten +mizarahi +mkay +mochi +model +modelo +modford +moen +moens +moerman +moffit +moga +mogalian +mogged +mohammad +mondanaro +mondragon +monford +monfrecola +mongis +monica +monn +monroy +monserrat +monsma +montalvo +montary +montaño +montelongo +montenegro +montgomery +montinos +montoya +montyn +moodley +moooo +moore +mora +moraitis +more +moreault +morehouse +moreno +morgan +morgenthau +mori +morin +morkos +morris +morrison +morrissey +morse +mortensen +moscatelli +moshayedi +moss +motzkus +mougenot +mowlds +moya +moyeda +mr. +mucci +muir +muise +mulcahy +mulder +mulet +mulhern +mullen +mullenbomango +muller +mullin +mun +munoz +murillo +muro +murphy +murray +muse +must +mutio +muzumdar +muñiz +myer +myers +myklatun +mylan +möller +naccarato +nad +nadine +naegele +nagy +nahomi +nahon +nail +naime +najib +namdar +nando +naos +naranjo +narvaez +narytnyk +nasyrov +natalia +natanael +natlie +naum +navarrete +navellou +naylor +nazmiye +neel +neerland +negrete +neil +neill +nelson +nersessian +neufeld +neuman +neuron +new +newborne +newhouse +newman +newton +nguyen +nian +nicholls +nichols +nicholson +nick +nicole +nicoleta +nidia +nidorf +niebla +niedfeldt +nielsen +nielson +nienkämper +nieves +niezgorsky +nightingale +nijjar +nikayin +niki +nikolett +nillson +nilsson +nobert +noe +noel +nogales +noguera +nogxina +noname +noon +nordin +nordling +noregua +norman +norris +norris. +nottingham +nottle +nourai +nourbakhsh +nourish +nugent +nunag +nunn +nuñez +nystrom +o''brien +o''hare +o''louchlan +o''malley +o''mara +o''neil +o''shea +obiols +oceallaigh +ochoa +odriozola +odwyer +ofetsth +ogden +ogilvie +ojeda +okabe +okoye +ola +olan +olander +olaru +olbrich +olden +olea +olga +olguin +olivares +olivas +oliveira +oliver +olivera +olivier +olivieri +ollier +olmedo +olocco +olsen +olszewski +omalley +omar +onieal +onyekere +opshaug +orca +ordaz +orem +orendain +orillac +orimann +oringer +orlando +orlova +orme +orozco +ortega +ortiz +ortmann +ortquist +osband +osborn +osborne +oseguera +osmond +osorio +ospina +osterhold +ostfeld +oswald +otis +ott +ouadha +ouellet +ousley +ovens +overlock +owens +owers +ozer +ozlanska +paananen +pablo +pace +pacente +pacheco +pack +padilla +pagadora +pagano +page +paine +palacios +paladino +palafox +palermo +palma +palmer +pamela +pampel +panella +paneri +paquette +paradas +paragioudakis +parcells +pare +paredes +parfitt +parikh +parke +parks +parmacek +parmenter +parra +parrish +parsons +pascal +paskin +paspa +passalacqua +passanisi +passarelli +pastor +pastos +pastrana +patel +pateras +patricia +patrick +patron +pattanyus +patterson +paul +paula +paulich +paulo +pavan +pavlin +peacock +peak +pearl +pearson +pease +peat +peck +pecou +pedersen +pedi +pedraza +pedro +pee +peffer +pelaes +peleg +pelletier +penalosa +pendergast +pendleton +penhaskashi +peniche +pepper +pequeno +perales +peralta +peraza +percasky +perdomo +peredelsky +pereira +perez +perl +perlin +perlman +perpar +perri +perricone +perrina +perroti +perry +pertler +pertsinidis +peruano +pes +pesqueira +peter +peters +petersen +peterson +petitjean +petro +petrose +petrusich +pett +pettengell +pettis +petzi +peyro +peyser +peyvan +pezzotti +peña +pfau +pfeil +phah +pham +phelan +phelis +philinda +philip +philippa +philips +phillips +photographer +photoshooting +phrachanh +picard +piccioli +picco +piccoli +pickett +pickford +pidcock +piecuch +piedi +piere +pierre +pilcher +pillsbury +pinarli +pineda +pinedo +pinkwater +pinto +piper +pirathiba +pires +pirry +piscione +pizanti +plante +platon +platzer +pliego +plummer +poga +pola +polat +polio +polishook +politzer +pommard +ponko +ponson +ponti +popadic +pope +popish +popolo +por +porche +porter +portillo +portocarrero +possenti +post +potier +pott +pottenger +pottinger +poucel +povich +powell +power +powis +pozzeti +prado +praeger +pranger +prasad +prassad +prather +pratt +preciado +preiss +prempeh +prescott +presidente +press +pressburg +pressburg/kinsey +preston +priecel +priest +prill +prince +pritcharno +privat +procter +production +prommer +prosperi +pueblo +puig +puley +pulido +pulve +pummer +purcell +putnam +pyle +quad +quaintance +quesada +quezada +quintana +quintero +quirk +quiñones +rachel +rademaker +radetich +radford +radiant +radzko +rae +rafael +raffan +rafferty +raghunathan +ragonese +rahn +raible +raiola +rajan +rajmohan +rallo +ramirez +ramnani +ramon +ramos +ranalletti +randazzo +ranegie +raneri +rannells +raoult +raquel +raskin +rasmussen +ratapong +ratcliff +rateau +rattenbury +rattray +rausch +rawlins +ray +rayek +rayes +reaijnhart +reale +rebak +rebecca +rebei +rebolledo +recep +recepcion +rechtien +reece +reed +reel +reese +reeser +reeveo +regula +reicherter +reid +reijerse +reinsch +remedios +remis +remnant +remy +renan +rendon +reola +reserva +residencia +retreat +rey +reyes +reynaud +reynolds +rezanour +rhine +rhoades +rhodes +rhyan +ribero +ribsan +ricardo +richards +richardson +richert +richman +richter +ricky +riddle +rider +rieder +riedinger +riedler +riegel +rienzie +riera +rierson +riess +riley +rimer +rincon +rini +rios +riot +risser +ritchie +rivard +rivas +rivera +rivero +rizo +roach +robenbeck +roberson +robert +roberts +robertson +robinson +rocha +rochdi +roche +rockefeller +rodecki +roderick +rodgers +rodirguez +rodrigo +rodrigues +rodriguez +rogelio +rogere +rogers +rohan +rojas +rojo +romain +romaneck +romboli +rome +romero +romeu +romney +romo +roniger +room +rorell +rosado +rosales +rosas +rose +rosen +rosenberg +ross +rossano +rossi +rosso +roston +roth +rothery +rothman +rouhani +route +rowland +roy +rubi +rubin +rubinstein +rubio +rude +rueth +ruffin +rui +ruiz +rule +ruotolo. +russell +rusu +rusznyak +ruyol +ryan +ryder +rykse +saavedra +sabato +sabzi +sacca +sacks +sacoccio +sadd +sadeghi +sadiq +saegert +safran +sager +saidman +saigin +sakellaropoulas +salamanca +salazar +saldivar +saleem +salgado +salina +salinas +salluce +salomon +salsedo +saluja +salvatierra +sam +samantha +samantha. +samarguliani +same +samek +sampso +samsara +samuel +samuels +san +sanches +sanchez +sandeep +sanders +sandhu +sandoval +sandrian +sandro +sanfield +sanfillipo +sanjuan +sant +santamaria +santana +santiesteban +santillán +santo +santodomingo +santos +sapien +sapna +sarabia +sarah +sarandrea +sarette +sarkar +sarlo +saroj +sarquis +sartorio +sascha +satterkee +sauceda +sauer +saunders +sauro +saurty +savino +savoie +sawaya +sawyer +sblendorio +scala +scarcini +scarff +scarnatto +schaefer +schandelmeier +schattkowsky +schauf +scheer +scheinman +schemansky +schembri +scherer +scherp +schetzsle +scheuer +schiavoni +schieferstein +schiekofer +schifferdecker +schimmel +schipke +schivy +schlager +schlesinger +schmidt +schnaid +schnapp +schneider +schnorr +schoenborn +schoendorf +scholfield +schoonover +schravesande +schubert +schuelke +schuerfeld +schulder +schulman +schultz +schurch +schustir +schwab +schwabsky +schwartz +schwegel +schweitzer +schweizer +schönborn +scmeo +scott +scuras +seale +searles +sebastian +second +segle +segura +seguridad +seigel +seilheimer +selmy +sencenbaugh +senders +seneca +senechal +senior +senn +senor +sepulveda +serais +sergio´s +serna +serrano +serre +servantes +severi +sevin +sezer +sfakianos +shafran +shah +shahinfar +shalom +shanks +shanna +shannkhappa +shannon +shanon +shapiro +shaun +shaw +shchori +shea +sheedy +sheffman +sheiner +shell +shelton +shepard +shepley +sheppard +sherine +sherman +sherry +sheyla +shienbaum +shimono +shimzu +shingle +shishkovskiy +shiverick +shockley +shoemaker +shojai +shorr +shotton +shoup +shultz +shumate +shunn +shymanksi +siamo +siboni +sica +sidhu +siegel +sielert +sierra +sigmun +sigmund +signol +sigurdur +sikorska +silk +silva +silveira +silver +silvernail +silvestri +silvia +simich +simmons +simon +simpson +sims +singh +siniak +siniscalchi +sirma +sison +sivalon +sjoholm +skaane +skalko +skancke +skinner +skoglund +slaught +slepin +sloan +slobodow +slocum +sloofman +sminoff +smirnov +smith +smolej +snell +snider +sokolovsky +solanas +solano +soldi +solecki +soledad +solis +solomun +solorzano +soltero +somorjai +sood +sophie +sorensen +sorenson +soria +sosa +soto +soued +southwell +sowter +soyars +spa +spadaro +spain +sparaco +spark +sparks +spearman +spector +speidel +spelman +spence +spencer +spizuoco +spuhler +spyrou +srivasatava +st. +staba +stabile +stabio +staedeli +staff +stafford +stahl +stallone +stalnaker +stanchi +stanley +stanzione +star +stark +starr +stavena +staying +steele +steen +steffens +stegon +stein +steinberg +steinz +stellar +stelzer +stenger +stephanie +stephens +stern +sterner +steve +stevens +stevenson +stewart +sthepanie +stierwalt +stock +stockton +stoltz +stone +stotes +stowell +strack +strano +strauss +strehl +streichenberger +streif +stroll +stronberg +stross +stuart +stuckslager +stucky +stylist +stzoser +suarez +subbaraman +subieta +sullivan +sum +sumerson +sunderland +sundin +sundstrom +sunem +suojansalo +sura +susan +sutton +suzanne +suzuki +swaak +sweet +swenson +sweredoski +sydow +syer +sylvestre +szablowska +szabo +szkolnik +taborek +taerk +taibi +talmadge +talón +tam +tamayo +tamorri +tangrad +tanikawa +tanner +tapia +taplin +tarallo +tarica +tarot +tarzian +tasker +tassé +tate +taus +tavares +taveras +taylor +taymizyan +tba +tbd +teacher +tejeda +temazcal +tempel +temple +tena +tenenbown +terrazas +terry +teru +test +teufel +tex +thakraborty +thalji +thatcher +the +their +theo +theresa +therrien +thibaut +thierfelder +thiermann +thomas +thompson +thorman +thornberg +thornton +thorp +thur +tiberi +tigrett +timmons +timmothie +timsina +ting +tinonco +tinyo +tirel +title +titus +tizzoni +tobias +tobiasen +tocco +todd +tohme +toleti +tolibas +tomasovich +tonnessen +tony +toone +torez +toriello +toro +torrente +torres +torrey +torrez +tour +toussaint +townsend +toy +toyo +toyota +trabado +trabajara +trainer +training +tram +tran +tranent +tranes +trapote +travis +traytele +tre +tregenza/atkins +tremari +tremblay +trent +trentacoste +trentalancia +tres +treviño +trifoglio +trinel +trinks +tritsis +tritten +trivedi +trivelli +troisi +tromberg +tromelin +trommen +troni +troy +trudel +trueman +trujete +truscott +trynka +tsai +tschape +tseng +tucker +tufino +tullo +tung +turcotte +turino +turken +turnage +turner +tyquin +tyson +ufberg +uhrig +ujvari +ulises +umhoefer +unda +under +underwood +unter +unwalla +urban +uribe +urtiaga +urzyu +ustaran +v.v.t.c. +vaden +vahaviolos +valdes +valdevenito +valdez +valdivia +valenti +valentina +valentine +valerio +valinoti +valle +valleau +van +vanburen +vanden +vanderhoop +vanderploeg +vanessa +vanos +vanroten +vara +vargas +varma +vartoukian +vasileff +vasquez +vazar +vazquez +veall +vecerril +vedel +vega +vela +velasquez +veley +velez +velázquez +vendido +vendruscolo +venegas +venezia +venta +ventas +venzor +verdicchio +verdu +vernau +veronica +vesole +veson +via +vialpando +vicencio +viciedo +vicky +victoria +vidal +videla +video +videomaker +vides +vidot +vieira +viggiani +vignola +villa +villalobos +villanueva +villaseñor +vilspoell +virguez +virlas +visconti +vise +viseppo +vital +viu +viviana +vizconde +vogel +voisin +volent +voltaire +von +vonsaher +vurnbrand +wade +wagner +wait +wak +walk +walker +walkin +walking +walkins +wall +wallace +wallen +walsh +walta +walter +walters +walton +wang +wapinski +wapman +warat +ward +ware +warman +warner +warren +warwick +wassong +watkin +watkins +watson +watts +wayans +waymouth +wayne +webb +webber +weber +webster +weege +weeks +wegner +weidemnan +weinberg +weinger +weinstein +weir +weisenthal +weisman +weiss +welch +wells +welsh +wendel +wendy +werner +werring +wertman +wescoat +wessel +west +westin +westphal +westveer +wetherell +wexler +weyn +whelan +white +whitehead +whitelaw +whiteman +whiterobbinson +whiteside +whitney +wiggins +wilansky +wilburn +wild +wilder +wiley +wilfred +wilkinson +wilkins +wilks +will +william +williams +williem +willis +willstein +wilma +wilson +winfree +wingo +winhold +winkler +winner +winslow +winter +wirsing +wish +with +woehlke +wojcik +wojnowich +wolf +wolfe +wolfson +wong +wood +woodard +woods +woody +woolley +wouter +wozniak +wren +wright +wulfers +wung +wöge +xavier +xieveria +yael +yaffe +yaga +yam +yan +yates +yazici +yeruko +yoder +yoga +york +you +youchen +youelles +young +yui +yun +yunes +yusupova +zabala +zabel +zacarias +zacharias +zachary +zahedi +zahorsky +zaitz +zajdman +zakresi +zakreski +zaldivar +zamani +zambrano +zamora +zamorano +zamudio +zandri +zapata +zaragoza +zarr +zarzur +zavala +zazueta +zdarsky +zehbrauskas +zeifman +zeitoun +zelin +zeljazkow +zemke +zenor +zetina +zhang +zhubi +zijada +zimmerman +zinat +zindros +zisman +zoe +zohrenejad +zolt +zornes +zuart +zubiran +zugasti +zulijani +zulkowski +zundel +zuniga +zurilla'; + +WITH src AS ( + SELECT LTRIM(RTRIM([value])) AS name + FROM STRING_SPLIT(REPLACE(@raw, CHAR(13), ''), CHAR(10), 1) +) +INSERT INTO #surname(surname) +SELECT name +FROM src +WHERE name <> N''; + +IF OBJECT_ID('tempdb..#people') IS NOT NULL + DROP TABLE #people; + +SELECT f.first_name, l.surname +INTO #people +FROM #first_name f +CROSS JOIN #surname l +ORDER BY NEWID() + +-- CLEAN-UP +DROP TABLE #first_name; +DROP TABLE #surname; + +WITH u AS ( + SELECT TOP ($(USERS)) + first_name, + surname, + usernamebase = CONCAT(LEFT(first_name, 1), surname), + usernamern = ROW_NUMBER() OVER ( + PARTITION BY CONCAT(LEFT(first_name, 1), surname) + ORDER BY (SELECT 1) + ) - 1 + FROM #people + ORDER BY NEWID() +), +email_domains AS ( + SELECT domain_name, + ROW_NUMBER() OVER (ORDER BY NEWID()) AS rn + FROM (VALUES +-- Common global providers +('gmail.com'), +('outlook.com'), +('hotmail.com'), +('yahoo.com'), +('icloud.com'), +('aol.com'), +('zoho.com'), +('proton.me'), +('mail.com'), +('gmx.com'), + +-- UK ISPs and legacy domains +('btinternet.com'), +('btopenworld.com'), +('talktalk.net'), +('tiscali.co.uk'), +('virginmedia.com'), +('blueyonder.co.uk'), +('ntlworld.com'), +('sky.com'), +('plus.net'), +('onetel.com'), + +-- European & international +('yandex.ru'), +('web.de'), +('mail.ru'), +('orange.fr'), +('wanadoo.fr'), +('laposte.net'), +('libero.it'), +('seznam.cz'), +('terra.com.br'), +('naver.com'), +('hanmail.net'), +('qq.com'), +('163.com'), +('rediffmail.com'), + +-- Work / corporate style +('examplecorp.com'), +('contoso.com'), +('fabrikam.co.uk'), +('widgetworks.io'), +('acmecorp.net'), +('intechsystems.co.uk'), +('globex.com'), +('umbrella-corp.biz'), +('summitgroup.org'), +('northstartech.io'), +('dynalogic.co'), + +-- Quirky / fake +('mailinator.com'), +('tempmail.net'), +('dispostable.com'), +('noreply.me'), +('codebox.dev'), +('devmail.io'), +('fakeinbox.org'), +('testmail.app'), +('bugreport.io'), +('sandboxmail.net'), +('nomail.com'), +('demoaccount.org'), +('placeholder.co'), +('stagingmail.dev'), +('mockuser.net') + ) + a(domain_name) +) +INSERT INTO dbo.Users (Username, FirstName, Surname, Email) +SELECT + Username = CONCAT(usernamebase, NULLIF(CAST(usernamern AS varchar(10)), '0')), + FirstName = first_name, + Surname = surname, + Email = CONCAT(usernamebase, NULLIF(CAST(usernamern AS varchar(10)), '0'), '@', domain_name) +FROM u +CROSS APPLY ( + SELECT TOP 1 domain_name + FROM email_domains + ORDER BY CHECKSUM(NEWID(), first_name, surname) & 2147483647 +) d; + +DROP TABLE #people; + +DECLARE @Seed BIGINT = 8675309; + +IF OBJECT_ID('tempdb..#Adj') IS NOT NULL DROP TABLE #Adj; +IF OBJECT_ID('tempdb..#Core') IS NOT NULL DROP TABLE #Core; +IF OBJECT_ID('tempdb..#Qual') IS NOT NULL DROP TABLE #Qual; +IF OBJECT_ID('tempdb..#Variant') IS NOT NULL DROP TABLE #Variant; +IF OBJECT_ID('tempdb..#Cat') IS NOT NULL DROP TABLE #Cat; + +CREATE TABLE #Adj (id INT IDENTITY(1,1) PRIMARY KEY, val NVARCHAR(32) NOT NULL); +CREATE TABLE #Core (id INT IDENTITY(1,1) PRIMARY KEY, val NVARCHAR(48) NOT NULL); +CREATE TABLE #Qual (id INT IDENTITY(1,1) PRIMARY KEY, val NVARCHAR(40) NOT NULL); +CREATE TABLE #Variant (id INT IDENTITY(1,1) PRIMARY KEY, val NVARCHAR(32) NOT NULL); +CREATE TABLE #Cat (id INT IDENTITY(1,1) PRIMARY KEY, Category NVARCHAR(50) NOT NULL, MinPrice DECIMAL(10,2) NOT NULL, MaxPrice DECIMAL(10,2) NOT NULL); + +INSERT INTO #Adj(val) VALUES + (N'Ultra'),(N'Pro'),(N'Prime'),(N'Omni'),(N'Quantum'),(N'Nova'),(N'Neo'), + (N'Hyper'),(N'Sonic'),(N'Pure'),(N'Fusion'),(N'Core'),(N'Vision'), + (N'Zen'),(N'Pulse'),(N'Flux'),(N'Infinite'),(N'Precision'),(N'Next'), + (N'Aero'),(N'Carbon'),(N'Meta'),(N'Crystal'),(N'Polar'),(N'Arc'); + +INSERT INTO #Core(val) VALUES + (N'Aether'),(N'Catalyst'),(N'Spectrum'),(N'Velocity'),(N'Nexus'), + (N'Horizon'),(N'Equinox'),(N'Paradox'),(N'Synergy'),(N'Vertex'), + (N'Ignite'),(N'Element'),(N'Frontier'),(N'Axis'),(N'Summit'), + (N'Orbit'),(N'Ascend'),(N'Eclipse'),(N'Radiance'),(N'Origin'), + (N'Endeavour'),(N'Shadow'),(N'Lumen'),(N'Obsidian'),(N'Momentum'), + (N'Zenith'),(N'Sentinel'),(N'Odyssey'),(N'Vector'),(N'Prism'), + (N'Vortex'),(N'Legacy'),(N'Justice'),(N'Tempest'),(N'Continuum'), + (N'Fluxion'),(N'Paragon'),(N'Aurora'),(N'Impulse'),(N'Resonance'), + (N'Serenity'),(N'Halo'),(N'Mirage'),(N'Unity'),(N'Stasis'), + (N'Infinity'),(N'Chronos'),(N'Pinnacle'),(N'Beacon'),(N'Arcadia'), + (N'Verve'),(N'Ember'),(N'Polar'),(N'Singularity'),(N'Oblique'), + (N'Cascade'),(N'Quasar'),(N'Pulsewave'),(N'Glyph'),(N'Cipher'); + +INSERT INTO #Qual(val) VALUES + (N'Edge'),(N'Forge'),(N'Field'),(N'Core'),(N'Line'),(N'Shift'),(N'Phase'), + (N'Frame'),(N'Gate'),(N'Flow'),(N'Grid'),(N'Lift'),(N'Path'), + (N'Point'),(N'Prime'),(N'Range'),(N'Rise'),(N'Sequence'),(N'State'),(N'Wave'), + (N'Works'),(N'Lab'),(N'Loop'),(N'Node'),(N'Band'),(N'Arc'),(N'Form'),(N'Layer'); + +INSERT INTO #Variant(val) VALUES + (N''),(N'Mini'),(N'Max'),(N'Plus'),(N'Mk II'),(N'XL'),(N'2025'), + (N'Edition'),(N'Alpha'),(N'Beta'),(N'Sigma'),(N'Omega'),(N'Evo'), + (N'One'),(N'Prime'),(N'Zero'),(N'Series X'),(N'V2'); + +INSERT INTO #Cat(Category, MinPrice, MaxPrice) VALUES + (N'Electronics', 19.99, 1499.99), + (N'Home & Kitchen', 3.99, 399.99), + (N'Sports & Outdoors', 4.99, 299.99), + (N'Clothing', 5.99, 199.99), + (N'Beauty', 2.99, 129.99), + (N'Books & Stationery', 4.99, 49.99), + (N'Office', 1.99, 249.99), + (N'Automotive', 3.99, 499.99), + (N'Garden & DIY', 2.99, 499.99), + (N'Pet Supplies', 1.49, 199.99); + +DECLARE @AdjCnt BIGINT = (SELECT COUNT(*) FROM #Adj); +DECLARE @CoreCnt BIGINT = (SELECT COUNT(*) FROM #Core); +DECLARE @QualCnt BIGINT = (SELECT COUNT(*) FROM #Qual); +DECLARE @VariantCnt BIGINT = (SELECT COUNT(*) FROM #Variant); +DECLARE @CatCnt BIGINT = (SELECT COUNT(*) FROM #Cat); + +WITH Pick AS ( + SELECT TOP ($(PRODUCTS)) + N, + adjId = ((@Seed*31 + N ) % @AdjCnt ) + 1, + coreId = ((@Seed*53 + N*7 ) % @CoreCnt ) + 1, + qualId = ((@Seed*97 + N*11 ) % @QualCnt ) + 1, + varId = ((@Seed*193 + N*13 ) % @VariantCnt) + 1, + catId = ((@Seed*389 + N*17 ) % @CatCnt ) + 1, + useQual = CASE WHEN ( (CHECKSUM(@Seed, N) & 2147483647) % 10 ) < 7 THEN 1 ELSE 0 END + FROM dbo.Numbers + ORDER BY N +), +Named AS ( + SELECT + p.N, + NameRaw = + CASE WHEN p.useQual = 1 + THEN CONCAT(a.val, N' ', c.val, N' ', q.val, + CASE WHEN v.val = N'' THEN N'' ELSE N' ' + v.val END) + ELSE CONCAT(a.val, N' ', c.val, + CASE WHEN v.val = N'' THEN N'' ELSE N' ' + v.val END) + END, + cat.Category, + cat.MinPrice, + cat.MaxPrice, + rnd = (CHECKSUM(@Seed, p.N, a.val, c.val, v.val, cat.Category) & 2147483647) % 10000 + FROM Pick p + JOIN #Adj a ON a.id = p.adjId + JOIN #Core c ON c.id = p.coreId + JOIN #Qual q ON q.id = p.qualId + JOIN #Variant v ON v.id = p.varId + JOIN #Cat cat ON cat.id = p.catId +), +Priced AS ( + SELECT + Name = LEFT(NameRaw, 100), + Category, + MinPrice, MaxPrice, + RawPrice = MinPrice + (rnd / 10000.0) * (MaxPrice - MinPrice) + FROM Named +) +INSERT INTO dbo.Products(Name, Category, Price) +SELECT + Name, + Category, + CAST( + CASE + WHEN (MaxPrice - MinPrice) <= 5 THEN ROUND(RawPrice, 2) + ELSE CASE + WHEN (FLOOR(RawPrice) + 0.99) > MaxPrice THEN MaxPrice + WHEN (FLOOR(RawPrice) + 0.99) < MinPrice THEN MinPrice + ELSE FLOOR(RawPrice) + 0.99 + END + END AS DECIMAL(10,2) + ) AS Price +FROM Priced; + +DROP TABLE #Adj; +DROP TABLE #Core; +DROP TABLE #Qual; +DROP TABLE #Variant; +DROP TABLE #Cat; + +DECLARE @StartDate DATETIME2(0) = '2000-01-01T00:00:00'; +DECLARE @EndDate DATETIME2(0) = SYSUTCDATETIME(); +DECLARE @Span FLOAT = DATEDIFF(SECOND, @StartDate, @EndDate) * 1.0; +DECLARE @UserMin INT, @UserMax INT; +SELECT @UserMin = MIN(UserID), @UserMax = MAX(UserID) FROM dbo.Users; + +IF @UserMin IS NULL +BEGIN + RAISERROR('No users exist in dbo.Users. Populate users first.',16,1); + RETURN; +END; + +IF OBJECT_ID('tempdb..#Status') IS NOT NULL DROP TABLE #Status; +CREATE TABLE #Status(id INT IDENTITY(1,1), val NVARCHAR(20) NOT NULL); +INSERT INTO #Status(val) +VALUES (N'Pending'), (N'Processing'), (N'Shipped'), + (N'Delivered'), (N'Cancelled'), (N'Returned'); + +DECLARE @StatusCnt INT = (SELECT COUNT(*) FROM #Status); + +INSERT INTO dbo.Orders (UserID, OrderDate, Status) +SELECT TOP ($(ORDERS)) + UserID = @UserMin + ((CHECKSUM(@Seed, N) & 2147483647) % (@UserMax - @UserMin + 1)), + OrderDate = DATEADD(SECOND, + (CHECKSUM(@Seed*13, N) & 2147483647) % CAST(@Span AS BIGINT), + @StartDate), + Status = ( + SELECT val + FROM #Status + WHERE id = ((CHECKSUM(@Seed*29, N) & 2147483647) % @StatusCnt) + 1 + ) +FROM dbo.Numbers +ORDER BY N; + +DROP TABLE #Status; + +IF OBJECT_ID('tempdb..#ProductsList') IS NOT NULL DROP TABLE #ProductsList; + +SELECT ROW_NUMBER() OVER (ORDER BY ProductID) AS rn, + ProductID, + Price AS BasePrice +INTO #ProductsList +FROM dbo.Products; + +DECLARE @ProductCnt BIGINT = (SELECT COUNT(*) FROM #ProductsList); + +INSERT INTO dbo.OrderItems (OrderID, ProductID, Quantity, UnitPrice) +SELECT + o.OrderID, + p.ProductID, + ((CHECKSUM(@Seed*101, o.OrderID, items.item_seq) & 2147483647) % 5) + 1 AS Quantity, + CAST( + CASE + WHEN ROUND(p.BasePrice * + (1.0 + (((CHECKSUM(@Seed*313, o.OrderID, items.item_seq, p.ProductID) & 2147483647) % 31) - 20) / 100.0), + 2) < 0.01 + THEN 0.01 + ELSE ROUND(p.BasePrice * + (1.0 + (((CHECKSUM(@Seed*313, o.OrderID, items.item_seq, p.ProductID) & 2147483647) % 31) - 20) / 100.0), + 2) + END AS DECIMAL(10,2) + ) AS UnitPrice +FROM dbo.Orders o WITH (READUNCOMMITTED) +CROSS APPLY ( + SELECT TOP ( (CHECKSUM(@Seed, o.OrderID) & 2147483647) % 10 + 1 ) + ROW_NUMBER() OVER (ORDER BY n.N) AS item_seq + FROM dbo.Numbers n WITH (READUNCOMMITTED) + ORDER BY n.N +) AS items +CROSS APPLY ( + SELECT rn = ((CHECKSUM(@Seed*17, o.OrderID, items.item_seq) & 2147483647) % @ProductCnt) + 1 +) pick +JOIN #ProductsList p + ON p.rn = pick.rn +ORDER BY o.OrderID, items.item_seq; + +DROP TABLE #ProductsList; + +DECLARE @NumberCount BIGINT, @UserCount BIGINT, @ProductCount BIGINT, @OrderCount BIGINT, @OrderItemCount BIGINT, @EventCount BIGINT, +@PostCount BIGINT; + +SELECT @NumberCount = COUNT(*) FROM dbo.Numbers; +SELECT @UserCount = COUNT(*) FROM dbo.Users; +SELECT @ProductCount = COUNT(*) FROM dbo.Products; +SELECT @OrderCount = COUNT(*) FROM dbo.Orders; +SELECT @OrderItemCount = COUNT(*) FROM dbo.OrderItems; +SELECT @EventCount = COUNT(*) FROM dbo.Events; +SELECT @PostCount = COUNT(*) FROM dbo.Posts; + +DECLARE @Message NVARCHAR(MAX); + +SELECT @Message = CONCAT( +CHAR(13), CHAR(10), +'=================================================================', +CHAR(13), CHAR(10), +'dbo.Numbers row count [', @NumberCount, ']', CHAR(13), CHAR(10), +'dbo.Users row count [', @UserCount, ']', CHAR(13), CHAR(10), +'dbo.Products row count [', @ProductCount, ']', CHAR(13), CHAR(10), +'dbo.Orders row count [', @OrderCount, ']', CHAR(13), CHAR(10), +'dbo.OrderItems row count [', @OrderItemCount, ']', CHAR(13), CHAR(10), +'dbo.Events row count [', @EventCount, ']', CHAR(13), CHAR(10), +'dbo.Posts row count [', @PostCount, ']', CHAR(13), CHAR(10), +'================================================================='); + +PRINT @Message; + PRINT 'Test data ready.'; GO -'@ | Set-Content -Encoding UTF8 $tmp.FullName +'@ | Set-Content -Encoding Unicode $tmp.FullName Write-Host "Copying init script into container..." -Invoke-OrThrow "docker cp $($tmp.FullName) `"$ContainerName`:/tmp/init.sql`"" "Failed to copy init script into container" +Invoke-OrThrow "docker cp $($tmp.FullName) `"$ContainerName`:/tmp/init.sql`"" "Failed to copy init script into container" -Activity "Copy init.sql to container" Write-Host "Executing init script inside container..." $recreateFlag = if ($RecreateDb) { 1 } else { 0 } + Invoke-OrThrow ("docker exec {0} /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P {1} -C -b -i /tmp/init.sql -v DBNAME=""{2}"" RECREATE={3} USERS={4} PRODUCTS={5} ORDERS={6}" -f ` - $ContainerName, $SaPassword, $DbName, $recreateFlag, $Users, $Products, $Orders) "Failed to execute init script" + $ContainerName, $SaPassword, $DbName, $recreateFlag, $Users, $Products, $Orders) "Failed to execute init script" -Activity "Run init.sql with sqlcmd" Write-Host "" Write-Host "Database '$DbName' created and seeded successfully."