Ongelman ilmenemistapa
Mieti seuraavaa tilannetta:
- Sinulla on SQL CLR -funktio SQL Server 2016:ssa ja 2017:ssä.
- CLR-funktio kutsuu Transact-SQL-lausekkeita tekeytymiskutsujen kautta, kuten kutsumalla EXECUTE AS -lauseketta.
Tässä skenaariossa suorittaminen epäonnistuu ja näyttöön tulee seuraava virhesanoma:
Huomautus
- Msg 6522, taso 16, tila 1, toimintosarja prcedureName, rivi 0 [erän aloitusrivin rivinumero]
- Käyttäjän määrittämän rutiinin tai koosteen "ProcedureName" suorittamisen aikana tapahtui virhe .NET Framework:
- System.Data.SqlClient.SqlException: Palvelimen päänimi "LoginName" ei voi käyttää tietokantaa "DatabaseName" nykyisessä suojauskontekstissa.
Ratkaisu
Tämä korjaus sisältyy SQL Server 2017:n kumulatiiviseen päivitykseen 1.
SQL Server 2016:n Service Pack -tiedot
Tämä ongelma on korjattu seuraavassa SQL Server Service Packissa:
Service Pack 2 for SQL Server 2016
Tietoja SQL Server 2017 -koontiversioista
Jokainen uusi SQL Server 2017:n koontiversio sisältää kaikki edellisen koontiversion hotfix-korjaukset ja tietoturvakorjaukset. Suosittelemme, että asennat uusimman SQL Server 2017:n koontiversion.
Tietoja SQL Server Service Pack -paketeista:
Service Pack -paketit ovat kumulatiivisia. Jokainen uusi Service Pack sisältää kaikki aiempien Service Packien sisältämät korjaukset sekä mahdolliset uudet korjaukset. Suosittelemme ottamaan käyttöön kyseisen Service Packin uusimman Service Packin ja uusimman kumulatiivisen päivityksen. Sinun ei tarvitse asentaa aiempaa Service Packia ennen uusimman Service Packin asentamista. Seuraavan artikkelin taulukosta 1 saat lisätietoja uusimmasta Service Packista ja uusimmasta kumulatiivisesta päivityksestä.
SQL Server:n ja sen osien version, version ja päivitystason selvittäminen
Tila
Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.
Viitteet
Lue tietoja Microsoftin ohjelmistopäivitystensä kuvaamiseen käyttämästä sanastosta.