yhteistä toimintaa, kun kirjoitan T-SQL-kyselyt on yhdistää paikallisia tietokantoja ja käsitellä tietoja suoraan. Mutta on tilanteita, joissa sinun täytyy muodostaa yhteyden kauko-tietokantaan, joka sijaitsee eri esimerkiksi samalla palvelimella tai eri fyysiselle palvelimelle, ja prosessi sen tiedot rinnakkain paikallisten tietojen käsittely.,

SQL Server tarjoaa meille neljä hyödyllisiä menetelmiä yhteyden kauko tietokantapalvelimet, vaikka muut tietokanta-palvelin, tyypit, ja kyselyn sen tietojen omassa T-SQL-lause. Tässä artikkelissa, keskustelemme näistä neljästä menetelmästä ja miten käyttää sitä kysellä kauko SQL Server tietokantoja.

OPENDATASOURCE

ensimmäinen menetelmä kyselyn kauko SQL Server-tietokanta on OPENDATASOURCE T-SQL-toiminto alla:

OPENDATASOURCE ( provider_name kuten char, init_string )

Jos provider_name on OLE DB provider käyttää tietojen lähde., Ja init_string on yhteys merkkijono etäpalvelimen.

pystyä käyttämään OPENDATASOURCE julkilausuman, sinun täytyy varmista, että DisallowAdhocAccess rekisterin avain on asetettu 0 provider haluat muodostaa yhteyden muihin kuin SQL Server, joka löytyy alla polku rekisteriavaimet :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\<ProviderName>

Myös sinun täytyy ottaa Ad Hoc-Kyselyt Jaetaan advanced configuration vaihtoehto, joka on oletusarvoisesti pois käytöstä SQL Server., Jos yrität suorittaa alla yksinkertainen kysely, joka käyttää OPENDATASOURCE T-SQL saat virheilmoituksen:

Msg 15281, Taso 16, Valtio, 1, Rivi 1
SQL Server estänyt pääsyn SELVITYS ’OpenRowset/OpenDatasource’ osan ’Ad Hoc-Kyselyt Jaetaan, koska tämä komponentti on kytketty pois päältä osana security configuration tälle palvelimelle. Järjestelmän ylläpitäjä voi mahdollistaa ”ad Hoc hajautettujen kyselyjen” käytön käyttämällä sp_configurea., Lisätietoja, jotta Ad Hoc-Kyselyt Jaetaan’, haku ’Ad Hoc-Kyselyt Jaetaan’ SQL Server Books Online.

Kuten voit nähdä virhe viesti, Ad Hoc-Kyselyt Jaetaan advanced configuration vaihtoehto olisi oltava käytössä, jotta voit avata yhteyden kauko palvelimelle käyttäen OPENDATASOURCE.,

1
2
3
4
5
6

EXEC sp_configure ’show advanced options’, 1
RECONFIGURE
GO
EXEC sp_configure ’ad hoc distributed queries’, 1
RECONFIGURE
GO

Once the Ad Hoc Distributed Queries advanced configuration option is enabled, the previous query will run successfully., OPENDATASOURCE voi korvata palvelimen nimi neliosainen nimi taulukko tai näkymä SELECT, INSERT, UPDATE tai DELETE. Sitä voidaan käyttää myös SUORITUSILMOITUKSESSA etätallennetun menettelyn suorittamiseen.

OPENROWSET

toinen tapa kyselyn tietokantaan isännöi kauko SQL Server on OPENROWSET T-SQL-toiminto. Jotta voit käyttää OPENROWSET ad hoc-menetelmää, sinun täytyy antaa kaikki yhteyden tiedot, joita tarvitaan yhteyden kauko SQL server ja monet muut resurssit., Sitä voidaan myös käyttää irtotavarana käytön kautta sisäänrakennettu irtotavarana tarjoaja lukea tietoja tiedostoja. OPENROWSETIA käytetään FROM-lausekkeessa taulukkonimenä SELECT -, insertti -, UPDATE-tai DELETE-lausekkeissa. Vaikka kysely saattaa palauttaa useita tulossarjoja, OPENROWSET palauttaa vain ensimmäisen.

Käyttämällä OPENROWSET vaatii mahdollistaa Ad Hoc-Kyselyt Jaetaan advanced configuration vaihtoehto sama kuin OPENDATASOURCE toiminto.,979d8a2e”>

1
OPENROWSET(’providername’, ’datasource’,’kysely’)

Voit kirjoittaa edellisen OPENDATASOURCE kyselyn avulla OPENROWSET-toiminto seuraavasti:

Liittyy Palvelin

SQL Server Liittyvät Palvelin käyttää remote OLE DB tietolähteitä, kuten SQL Server-esiintymä, joka sijaitsee ulkopuolella SQL Server tai muiden järjestelmien, kuten Oracle, Microsoft Access ja Excel, ja suorittaa distributed T-SQL-kyselyt heitä vastaan.,

SQL Server Liittyy Palvelin on eri ad hoc-kyselyitä, että ad hoc-kyselyt avaa väliaikaisen yhteyden kauko-palvelimen ja sulje se, jos pysyvä liittyy palvelin on aina käytettävissä. Kun käyttäjä suorittaa hajautetun kyselyn vastaan kauko-tietolähteen käyttäminen liittyy palvelin, SQL Server Moottori jäsentää komennon ja lähettää pyyntöjä OLE DB. Tämä pyyntö voi olla suoritettava kysely tai avattava taulukko kyseisellä etäpalvelimella.,

linkitetty palvelin voidaan määrittää käyttämällä SQL Server Management studiota tai käyttämällä sp_addlinkedserver T-SQL statementia.

jotta linkitetty palvelin voidaan määrittää SQL Server Management Studion avulla, laajennetaan palvelimen objektien solmua objekti Explorer-ikkunasta. Napsauta hiiren kakkospainikkeella linkitettyä palvelinsolmua ja valitse Uusi linkitetty palvelin.

Yleiset-välilehdessä Uuden Liittyy Palvelin-ikkunassa, valitse nimi linkitetyn palvelimen, ja valitse sitten tyyppi-palvelin, sinun täytyy liittää käyttäen, jotka liittyvät palvelimelle., Valitse SQL Server, jos voit hallita yhteyden kauko SQL Server-esiintymä, tai valita Muita Tietoja Lähde valitse jokin käytettävissä OLE DB-palvelimen tyypit Tarjoaja avattavasta luettelosta muut kuin SQL Server. Jos valitset Palvelintyypiksi SQL Serverin, linkitetyn palvelimen nimen tulisi olla etäsovelletun SQL Serverin verkko-nimi.

Kirjoita Tuotteen Nimi-kentässä tuotteen nimi valittu OLE DB-tietolähde, kuten SQL Server, jos yhdistät kauko SQL Server., Kirjoita nimi valittu tietolähde tietolähteen kenttä, kuten SQL Server-Esiintymän nimi, jos yhdistät kauko SQL Server-esiintymä. Täytä tarjoaja merkkijono kenttä OLE DB tarjoaja – erityinen yhteys merkkijono, joka tunnistaa ainutlaatuisen tietolähteen. Sijaintikentän voi täyttää etätietokannan sijainnilla OLE DB-palveluntarjoajan tulkitsemana. Kirjoita luettelon nimi, jota OLE DB-tarjoaja käyttää luettelokentässä.,

Sinun ei tarvitse käyttää kaikkia esitettyjä argumentteja yhdessä, koska tarvittavat argumentit riippuvat valitun tarjoajan kanssa. Esimerkiksi käyttämällä SQL Server provider, voit käyttää vain kaksi argumenttia.

Suojaus-sivulla Uuden Liittyy Palvelin-ikkunassa, määritä turvallisuuden kontekstissa, joka liittyy palvelin käyttää yhteyden alkuperäisen SQL-Palvelimen kauko-tietojen lähde., Kuten nimi kertoo, Paikallisen palvelimen käyttäjätunnukset kauko-palvelimen käyttäjätunnukset kuvaukset osa Security-ikkuna, voit määrittää luettelon käyttäjistä, jotka voivat käyttää linkitetyn palvelimen yhteyden kauko-palvelin, kartoittamalla nämä paikalliset käyttäjät kauko-palvelimen käyttäjätunnukset. Nämä käyttäjät voivat olla kautta SQL Server Authentication tai Windows Authentication login.

Varten käyttäjätunnukset, joita ei ole määritelty kartoitus luetteloon, sinun täytyy valita turvallisuuden yhteydessä niiden yhteydet kauko-palvelimen avulla, jotka liittyvät palvelimelle., Valitsemalla EI tehdä estää käyttäjä, joka ei sisälly edelliseen luetteloon käyttää tätä linkitettyä palvelinta. Valinta tehdään ilman turvallisuus yhteydessä, käyttäjät, jotka eivät sisälly edellisiin kartoitus lista muodostaa yhteyden kauko-palvelimen avulla, joka liittyy server täsmentämättä turvallisuus yhteydessä heille. Jos valitset tehdään käyttämällä kirjautumisen nykyinen turvallisuuskonteksti, sitten yhteys etäpalvelimeen luodaan käyttämällä yhdistävä käyttäjä, joka on paras valinta., Vuonna tehdään käyttämällä tätä turvallisuus yhteydessä-vaihtoehto, määritä SQL Server Authentication credentials, jota käytetään luoda yhteyden kauko-palvelimen käyttäjille ei ole määritelty kartoitus luetteloon.

On monia vaihtoehtoja, että voit virittää riippuen sinun vaatimukset Palvelimen Asetukset-sivun Uuden Linkitetyn Palvelimen ikkuna. Aseta esimerkiksi Collation-yhteensopiva vaihtoehto todeksi, jos olet varma, että etätietolähteellä on sama merkistö ja lajittele tilaus kuin paikallisella palvelimella., Oletuksena, SQL Server arvioi vertailuja merkin sarakkeet paikallisesti, jos et käytä tätä vaihtoehtoa. Data Access vaihtoehto on käyttää ottaa käyttöön ja poistaa käytöstä jaettu kysely-yhteys linkitetyn palvelimen. Jotta etämenettelykutsu määritetystä palvelimesta asettaa RPC todeksi, ja jotta etämenettelykutsu määritetylle palvelimelle asettaa RPC todeksi.

päätettäessä, käytetäänkö kyselyssä paikallisen tai etäpalvelimen kollointia, käytetään Etäkollaatiovaihtoehtoa., Jos tämän vaihtoehdon arvo on totta, voit määrittää kollaationimen, jota etäpalvelin käyttää Collation-Nimivaihtoehdossa. Tämä on sovellettavissa, jos kauko-tietojen lähde on SQL-Palvelin, jossa voit määrittää minkä tahansa lajittelu nimi tukee SQL Server-alalla.

Voit ohittaa oletuksena palvelimen etäkäyttö aikakatkaisu, joka liittyy server muuttamalla Yhteyden Aikakatkaisu vaihtoehto tahansa arvo on suurempi kuin 0.Tämä arvo määrittää aikalisän sekunteina linkitettyyn palvelimeen yhdistämistä varten., Voit myös määrittää aikalisän sekunneissa kyselyille, jotka liittyvät linkitettyyn palvelimeen, muuttamalla kyselyn aikalisä-vaihtoehdon mihin tahansa arvoon, joka on suurempi kuin 0. Tämä ohittaa palvelimen etäkyselyn aikalisän linkitetylle palvelimelle.

Toinen hyödyllinen vaihtoehto, joka on käyttää aloittaa distributed transaction soitettaessa kauko tallennettu menettely, jossa tämä kauppa on hallita ja suojata MS DTC. Tätä vaihtoehtoa kutsutaan mahdollistamaan hajautettujen liiketoimien edistäminen.,hän alla viesti, muuten virheilmoitus tulee näkyviin, osoittaa, että siellä on jotain, joka estää yhteyden avaamisen:

Voit helposti luoda edellisen linkitetyn palvelimen käyttäen sp_addlinkedserver T-SQL kulkee tarvita argumentteja seuraavasti:

1
2
3
4

KÄYTTÄÄ
MENNÄ
SECURITY master.,dbo.sp_addlinkedserver @palvelin = N’DEV_SQL’, @srvproduct=N’SQL Server’
MENNÄ

Kun liittyy palvelin on luotu, voit käyttää sitä määrittämällä neljä-osan nimi, joka sisältää: Linked_Server_Name.Remote_database_nimi._nimi.Table_Name kuten alla olevassa esimerkissä:

1
2

SELECT * FROM DEV_SQL.,testdb.dbo.Profiili
MENNÄ

OPENQUERY

viime SQL Server-menetelmä, jota käytetään yhteyden kauko tietojen lähde on OPENQUERY-funktion. Se on vaihtoehtoinen kertaluonteinen ad hoc-menetelmä yhteyden muodostamiseksi etäpalvelimeen linkitetyn palvelimen avulla. Jos etäpalvelimeen tulee useammin yhteyksiä, on parempi käyttää linkitettyä palvelinta OPENQUERY-toiminnon sijaan.

OPENQUERY-toimintoa voidaan käyttää SELECT -, insertti -, UPDATE-tai DELETE-lausekkeessa, jossa korvataan taulukon nimi., Siihen tarvitaan kaksi argumenttia; linkitetty palvelimen nimi ja kysely. Näitä parametreja voi olla vaihteleva, seuraavasti:

OPENQUERY ( linked_server ,’kysely’ )

Alla on yksinkertainen esimerkki OPENQUERY käyttö:

1
SELECT * FROM OPENQUERY(DEV_SQL,’SELECT * FROM testdb.dbo.,Profiili’)

Vertailu

Kun käytät Linkitetyn Palvelimen kyselyn kauko-palvelin, kyselyn optimoija luo toteutussuunnitelman jälkeen luokittelemalla ja jakamalla kyselyn osaksi paikallis-ja kauko-kyselyt, jos paikalliset kyselyt toteutetaan paikallisesti ja kauko-kyselyt lähetetään kauko-palvelin, niin yhdistetty näyttö lopputulos käyttäjälle kuin yksi tulosjoukko., Toinen haitta Liittyy Palvelin on, että, ei suodatusta käytetään kauko-palvelimen avulla, jos kysely on lauseke, JOSSA, jossa se hakee kaikki tiedot kauko-taulukko ja tehdä suodatus ja liittyminen paikallisesti.

Vuonna OpenQuery-funktion tapauksessa, SQL Moottori ei yritä luokitella kyselyn tai tarkistaa, mitä se tekee, yksinkertaisesti, se lähettää kyselyn on the remote server. SQL-kyselyn jäsentäminen, toteutussuunnitelman luominen ja kaikki suodatus suoritetaan etäpalvelimella.,

yleensä, OpenQuery on nopeampi kuin linkitetyn palvelimen SQL Moottori ei hajoa kyselyn ennen sen lähettämistä kauko-palvelin, mutta hyödyllinen vain yhden kerran harvemmin remote connections.

Käyttämällä OPENROWSET ja OPENDATASOURCE toimintoja, sinun täytyy määrittää kaikki yhteyden tiedot kuten käyttäjätunnus ja salasana joka kerta, kun käytät sitä. Vaikka nämä toiminnot eivät tarjoa kaikkia linkitetyn palvelimen toimintoja, kuten turvallisuuden hallinta, se kuluttaa vähemmän resursseja palvelimelta., Koska nämä toiminnot avaavat kertaluonteisen yhteyden etäpalvelimeen, on parempi käyttää linkitettyä palvelinta usein etäpalvelinten käyttöön.

  • Tekijä
  • Viimeisimmät Viestit
Ahmad Yaseen on Microsoftin Big Data-insinööri, jolla on syvä tuntemus ja kokemus SQL BI, SQL Server-Tietokanta Hallinnon ja Kehittämisen aloilla.,
Hän on Microsoft Certified Solution Expert Tietojen Hallinta ja Analytiikka, Microsoft Sertifioitu Ratkaisu Liittää SQL-Tietokanta Hallinnon ja Kehittämisen, Azure Kehittäjä Osakkuus-ja Microsoft Certified Trainer.
hän myös osallistuu SQL-vinkeillään moniin blogeihin.,
Näytä kaikki viestit Ahmad Yaseen

Uusimmat viestit by Ahmad Yaseen (katso kaikki)
  • Miten valvoa Azure Data Factory – 15. tammikuuta 2021
  • Käyttää Lähde-Ohjaus Azure Data Factory – tammikuu 12, 2021
  • Mallien Azure Data Factory – 8. tammikuuta 2021

Articles

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *