SQL Server on mielenkiintoinen ominaisuus calles Liittyvät Palvelimet. Kyse on muiden tietokantojen yhdistämisestä SQL Serveriin ja niiden tietojen käyttämisestä kuin se olisi paikallista. On olemassa monia tehokkaita avoimen lähdekoodin järjestelmiä kirjoitettu PHP ja ne käyttävät enimmäkseen MySQL tietokantana. Tämä blogikirjoitus näyttää, miten linkittää MySQL-tietokanta SQL-palvelimeen ja miten linkitettyä palvelinta käytetään SQL-kyselyissä.
mikä on linkitetty palvelin?,
Liittyy palvelin, MSSQL on jokin muu tietokanta-palvelin kytketty annetaan yksi, jolloin se on mahdollista-kysely ja käsitellä tietoja muista tietokannoista. Esimerkillä voimme linkittää jonkin MySQL-tietokannan MSSQL: ään ja käyttää sitä lähes kuten mitä tahansa muuta MSSQL-tietokantaa.
Kuva on otettu MSSQL 2019 asiakirjat-sivulla
Linkitetyt Palvelimet (Database Engine)
Vaikka viestintä liittyvät palvelimet menee läpi OLE DB-tarjoajat, siellä on myös OLE DB provider for ODBC ja voimme käyttää sitä, jos ulkoisen tietokannan ei tarvitse OLE DB provider.
HUOM!, Linkitetty palvelin on käytettävissä koko SQL Server instance. Se tarkoittaa, että kaikki SQL Server-tietokannat voivat käyttää linkitettyä palvelinta tietojen hakemiseen.
Yhdistää MySQL, SQL Server
Lisäämällä liittyy palvelin-ja konfigurointi-yhteyden asettaminen ei ole aina helppoa ja suoraviivaista.
saada MySQL liittyy SQL Server minun piti luoda ODBC DSN for MySQL (nimesin sen MySQLCrm). Ennen kuin menet seuraaviin vaiheisiin, varmista, että ODBC tietolähde toimii.,
Noudata näitä vaiheita yhdistää MySQL SQL-Palvelin:
- Suorita SQL Server Management Studio (SSMS)
- Connect-palvelimelle
- Laajentaa Server Esineitä solmun puusta vasemmalla
- Oikea-klikkaa Toisiinsa Palvelimille
- Valitse Uusi Linkitetty Palvelimeen…
Sinun pitäisi nähdä seuraava ikkuna (tai hieman erilainen, mutta idea pysyy samana).
HUOM! Kiinnitä erityistä huomiota siihen, mitä asetat tähän ikkunaan. Tällä tiedolla sain linkin toimimaan. Kokeilin erilaisia arvoja, ja jos jokin on millimetrin vialla, yhteys pettää., Se on pirun herkkä dialogi.
Connection string MySQL-tietokannan pitäisi olla, kuten kuvassa:
Myös kiinnittää huomiota VAIHTOEHTO=3 – ilman tätä minulla on vain virheitä takaisin, kun liität liittyy palvelin.
yritä tallentaa klikkaamalla OK ja katso, pystytkö selaamaan linkitettyä palvelinta. Jos saat virheitä sitten hiiren kakkospainikkeella palvelimen ja valitse ominaisuudet. Pidä ikkuna auki, siirry palvelimen asetukset-sivulle. Aseta RPC-ja RPC-Asetukset todeksi.,
en ole vielä kovin varma, mitä nämä vaihtoehdot tekevät, mutta jotkut niistä, joilla oli ongelmia linkki MySQL teki sen toimimaan asetettuaan RPC-s totta.
tehdä kysely itse työhön, me tarvitsemme yksi pieni muutos, joka vaikuttaa koko OLE DB provider ja siksi kaikki yhteydet käyttämällä sitä. Avaa palveluntarjoajien solmu linkitettyjen palvelimien alla, napsauta hiiren kakkospainikkeella MSDASQL (tämä on OLE DB-palveluntarjoaja ODBC-tietolähteille) ja valitse Ominaisuudet.
tarkista ruutu ennen vain tasoa nolla ja napsauta OK tallentaaksesi muutokset.,
linkitetyn palvelimen
linkitettyjen tietokantojen tiedustelu on itse asiassa helppoa. Tässä on asiakkaiden taulukko crmlinked tietokannasta MySQL. Tämä tietokanta on linkitetty SQL-Palvelimeeni.
syntaksi linkitetyn palvelimen kyselylle on hieman erilainen kuin mitä yleensä kirjoitamme SQL serverillä. Meidän on käytettävä neliosaisia nimiä: palvelin.tietokanta.skeema.Taulukko. Koska MySQL: ssä ei ole kaavoja ja yhteysmerkkijono määrittää tietokannan nimen, voimme jättää nämä pois kuten tässä näytetään.
select * from MYSQLCRM...customers
Käynnissä tämän kyselyn SSMS antaa seuraavan tulosteen., Se on sama data, joka on MySQL asiakkaiden taulukossa.
tietysti voimme myös kirjoittaa monimutkaisempia kyselyjä. Kaikki, mitä ODBC pystyy käsittelemään, on kunnossa.
paikallisen ja linkitetyn palvelimen
taulukoita linkitetystä palvelimesta ei ole täysin eristetty paikallisista tietokantataulukoista ja-näköaloista. Voimme myös sekoittaa tietoja paikallisesta ja linkitetystä palvelimesta.
osoittaa, sekoitettu kyselyn yli paikallisia ja liittyvät taulukot, katsotaanpa kirjoittaa yksinkertaisia kyselyn saada kaikki asiakkaat paikallisista taulukko ja heidän luottoluokitukset linkitetty taulukko.
käynnissä Tämä kysely antaa meille seuraavat lähtö.,
Koska Merkki ei ole läsnä MySQL-tietokanta (oletetaan, että hän on uusi asiakas, e-kauppa ja myynti osasto ei ole häntä vielä heidän CRM-järjestelmä) sitten hän ei ole luottoluokitus saatavilla. Luottoluokitukset John ja Mary ovat tulossa MySQL tässä tapauksessa.
Käyttämällä OPENQUERY() suorittaa kysely liittyy palvelin
edellä Olevat esimerkit tekevät kaikki tietojen käsittely SQL Server. Se voi olla hyvin epäsopivaa, jos linkitetyn palvelimen taulukoissa on paljon dataa. Saatamme haluta – tai yleensä haluamme-käsitellä joitakin tietoja linkitetyllä palvelimella ennen SQL Server aloittaa paikallisen käsittelyn., Tätä varten meillä on OPENQUERY ().
tässä esimerkki OPENQUERY () – funktion käytöstä sekakyselyssä. Meidän on määritettävä linkitetty palvelimen nimi ja SQL-kysely, joka suoritetaan linkitetyllä palvelimella, kun soitamme OPENQUERYLLE(). Red-kysely suoritetaan MySQL-palvelimella ja tulokset luetaan SQL-palvelimelle jatkokäsittelyä varten.
SELECT
c.FirstName,
c.LastName,
crm_c.credit_rating as CreditRating
FROM
Customers c
LEFT JOIN OPENQUERY(MYSQLCRM, '
SELECT
c.credit_rating
FROM
customers p
left join loyalty_points lp on
c.customer_id = lp.customer_id
WHERE
lp.points > 1000
') crm_c ON
c.ssn = crm_c.ssn
ORDER BY
crm_c.credit_rating,
c.LastName,
c.FirstName
OPENQUERY() on hyvä tapa optimoida ja nopeuttaa sekoitettu kyselyt käynnissä monimutkaisempia kyselyitä toisiinsa palvelimen tiedot liittyvät palvelimelle.,
valmis
Liittyvät palvelimet on voimakas ominaisuus SQL-Palvelin, joten se on helppo käyttää tietoja ulkoisista palvelimia. On kaksi tapaa kirjoittaa kyselyjä linkitettyjen palvelimien tietojen avulla-suorat kyselyt, jotka tekevät kaiken käsittelyn SQL Server ja OPENQUERY (), joiden avulla voimme tehdä jonkin käsittelyn etäpalvelimessa. Linkitetty palvelin on integraatio ja siksi sen käyttäminen vaatii ylimääräistä huolellisuutta. Suunnittelu ja suorituskyvyn mittaus ovat must be-toimintoja suunniteltaessa käyttää linkitettyä palvelinta.
- tweet
- jakaa
- jakaa
- jakaa
- jakaa
- jakaa
- jakaa
- jakaa
Vastaa