Ka wareejinta xogta nuqul ka mid ah nooc cusub oo MS SQL Server ah una wareejinaya nooc duug ah

prehistory

Mar, si aan u soo saaro bug, waxaan u baahday kayd kaydinta xogta wax soo saarka.

Waxa iga yaabisay, waxa aan galay xadayntan soo socota:

  1. Kaydka xogta waxaa lagu sameeyay nooca SQL Server 2016 oo aan la socon karin aniga SQL Server 2014.
  2. Kumbuyuutarkayga shaqada, OS la isticmaalay wuxuu ahaa Windows 7sidaas darteed maan cusbooneysiin karin SQL Server ilaa version 2016
  3. Badeecada la taageeray waxa ay ahayd qayb ka mid ah nidaam wayn oo leh qaabdhismeed dhaxalgal ah oo si adag loo lamaanan yahay waxa kale oo uu la hadlay badeecooyinka iyo saldhigyada kale, markaa waxa ay qaadan kartaa wakhti aad u dheer in la geeyo xarun kale.

Marka la eego arrimaha kor ku xusan, waxaan imid gabagabada in la gaaray waqtigii la heli lahaa xalal aan caadi ahayn.

Soo celinta xogta kaydka

Waxaan doortay in aan isticmaalo mishiin dalwaddii ah Oracle VM VirtualBox leh Windows 10 (waxaad u qaadan kartaa sawir tijaabo ah browserka Edge halkan). SQL Server 2016 waxaa lagu rakibay mashiinka farsamada iyo xogta codsiga waxaa laga soo celiyay kaydka (buug).

Ku habeynta gelitaanka SQL Server ee mashiinka farsamada

Marka xigta, waxaa lagama maarmaan noqotay in la qaado tillaabooyin si ay awood ugu yeelato helitaanka SQL Server dibadda:

  1. Dab-damiska, ku dar xeer aad kaga boodaan codsiyada dekedaha 1433.
  2. Waa suurad wacan in gelitaanka server-ka uusan soo marin windows sugida, laakiin loo maro SQL iyadoo la adeegsanayo login iyo password ( way fududahay in la dejiyo). Si kastaba ha noqotee, kiiskan, waxaad u baahan tahay inaad xasuusato inaad awood u yeelatid Xaqiijinta SQL ee guryaha SQL Server.
  3. In goobaha isticmaala ee SQL Server ee tabka Khariidaynta Isticmaalaha cadee doorka isticmaale ee xogta xogta la soo celiyay db_security admin.

Wareejinta xogta

Dhab ahaantii, wareejinta xogta lafteedu waxay ka kooban tahay laba marxaladood:

  1. Wareejinta qorshaha xogta (miisaska, aragtida, hababka kaydsan, iwm.)
  2. Wareejinta xogta lafteeda

wareejinta schema xogta

Waxaan qabanaa hawlaha soo socda:

  1. Xullo Hawlaha -> Samee qoraallo saldhig la qaadi karo.
  2. Dooro walxaha aad u baahan tahay si aad u wareejiso ama uga tagto qiimaha caadiga ah (kiiskan, qoraallada ayaa loo abuuri doonaa dhammaan walxaha xogta).
  3. Sheeg goobaha lagu kaydinayo qoraalka Way ku habboon tahay in qoraalka lagu kaydiyo hal fayl oo Unicode ah. Kadib, haddii ay dhacdo guuldarro, uma baahnid inaad ku celiso dhammaan tillaabooyinka mar kale.

Marka qoraalka la keydiyo, waxaa lagu socodsiin karaa asalka SQL Server (nooca hore) si loo abuuro saldhigga loo baahan yahay.

Digniin: Kadib fulinta qoraalka, waxaad u baahan tahay inaad hubiso waraaqaha u dhexeeya dejinta xogta kaydinta iyo kaydka uu sameeyay qoraalku. Xaaladeyda, ma jirin meel loogu talagalay COLLATE oo ku jirta qoraalka, taas oo keentay fashilaad marka la wareejinayo xogta iyo qoob ka ciyaarka dambuyuutarka si dib loogu sameeyo xogta iyada oo la adeegsanayo qoraalka la kabay.

Wareejinta xogta

Kahor intaadan wareejin xogta, waa inaad joojisaa hubinta dhammaan xaddidaadaha kaydka:

EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all'

Wareejinta xogta waxaa lagu fuliyaa iyadoo la isticmaalayo saaxir xogta soo dejinta Hawlaha -> Soo dejinta Xogta on SQL Server, halkaas oo database-ka abuuray qoraalku ku yaal:

  1. Sheeg goobaha isku xirka isha (SQL Server 2016 ee mashiinka farsamada). Waxaan isticmaalay isha xogta SQL Server Macmiil iyo xaqiijinta SQL ee aan soo sheegnay.
  2. Sheeg goobaha isku xirka meesha loo socdo (SQL Server 2014 ee mashiinka martida loo yahay).
  3. Marka xigta, deji khariidaynta. Dhammaan waa in la doortaa ma aha akhris-kaliya walxaha (tusaale ahaan, aragtida looma baahna in la doorto). Sida xulashooyin dheeri ah, dooro "Oggolow geli gelinta tiirarka aqoonsiga"haddii sidaas loo isticmaalo.
    Digniin: haddii, marka la isku dayayo in ay doortaan dhowr miis oo ay dejiyaan hantidooda "Oggolow geli gelinta tiirarka aqoonsiga" guriga ayaa mar hore loo dejiyay ugu yaraan mid ka mid ah miisaska la doortay, wada hadalku wuxuu tilmaamayaa in guriga mar hore loo dejiyay dhammaan miisaska la doortay. Xaqiiqadani waxay noqon kartaa jahawareer waxayna horseedi kartaa khaladaadka tahriibka.
  4. Waxaan bilaabeynaa wareejinta.
  5. Soo celinta hubinta xannibaadda:
    EXEC sp_msforeachtable 'ALTER TABLE ? CHECK CONSTRAINT all'

Haddii ay jiraan wax khaladaad ah, waxaan hubineynaa goobaha, tirtirno xogta lagu abuuray khaladaadka, dib-u-abuurista qoraalka, samee sixid iyo ku celi wareejinta xogta.

gunaanad

Hawshan waa naadir waxayna dhacdaa oo keliya sababtoo ah xaddidaadyada kor ku xusan. Xalka ugu caansan waa in la cusboonaysiiyo Server-ka SQL ama lagu xidho server fog haddii qaab-dhismeedka codsigu ogolaado. Si kastaba ha ahaatee, ma jiro qof ka badbaado xeerka dhaxalka ah iyo gacmaha qalloocan ee horumarka tayada liita. Waxaan rajeynayaa inaadan u baahnayn tilmaamahan, laakiin haddii aad weli u baahan tahay, waxay kaa caawin doontaa inaad badbaadiso waqti badan iyo neerfaha. Waad ku mahadsan tahay dareenkaaga!

Liiska ilaha la isticmaalay

Source: www.habr.com