Answered by:
sema es tabla

Question
-
hali
van 3 tablam, a tabla neve ugyan az dbo.tabla, cz.tabla, hu.tabla
van egy pr2 user, akinek a default sema a CZ.
ezek utan az alabbi kis kodot nem egeszen ertem...
create
proc dbo.Lekeras
select
schema_name() as CurrentSchemaselect
* from Tablago
setuser
'pr2'exec
dbo.Lekerselect
* from Tablaselect
* from CZ.Tablaselect
schema_name()setuser
amit en vartam, hogy az exec Leker vagy a dbo vagy a CZ tablat adja
a select * from tabla a CZ.Tablat adja
hiszen ez a default semam.
de nem!
ezt kapom:
CurrentSchema
CZ
(1 row(s) affected)
id co nev
1 DB one
2 DB two
(2 row(s) affected)
id co nev
1 DB one
2 DB two
(2 row(s) affected)
id co nev
1 CZ jedno
2 CZ dwa
(2 row(s) affected)
CZ
(1 row(s) affected)
erdekesseg meg, hogy ha nincs dbo.Tabla, akkor az exec Lekerdez elszall hibaval, hogy nincs Tabla, de a select * from tabla az meg megy es listazza a CZ.tablat.
hogan tudom elerni, hogy a Lekerdez a Current_Schema szerinti tablat talalja meg? (epp az lenne a lenyeg, hogy nincs elottea sema nev es ezert attol fugg ki hivj ameg, hogy melyik tabla tartalmat kapja vissza)
a result set a drop table dbo.Tabla utan:
CurrentSchema
CZ
(1 row(s) affected)
Msg 208, Level 16, State 1, Procedure Leker, Line 4
Invalid object name 'Tabla'.
id co nev
1 CZ jedno
2 CZ dwa
(2 row(s) affected)
id co nev
1 CZ jedno
2 CZ dwa
(2 row(s) affected)
CZ
(1 row(s) affected)
Monday, August 6, 2007 2:41 PM
Answers
-
Már a connect-en van ilyen request, szavazz te is rá:
https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=272964
De a bol-ban itt leírták:
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/udb9/html/e698c504-24d8-4d2e-bd33-f0d6fe977ffc.htm
Ennél a résznél:
Qualifying Names Inside Stored Procedures
Thursday, August 9, 2007 10:19 AMModerator
All replies
-
Úgy tűnik, hogy a stored procedure owner bekavar, mert ez alapján hozza létre a lekérdezési tervet. Sajnos ez csak úgy fog működni, ha külön a cz, hu schemában is van egy ugyanilyen tárolteljárásod. Úgyhogy az előző kérdésre (design pattern-re) ez is csak fenntartásokkal jó. Viszont 1 jó telepítő készlettel, ez könnyen megoldható, de ez már majdnem ua mint a több db...
Tuesday, August 7, 2007 11:52 AMModerator -
az igazi kerdes, hogy ez bug es az SP X majd javitja vagy by design ez igy lett kitalalva?
nekunk meg csap SP1unk van igy pl nem tudom, ohgy SP2n is igy muxik-e. valaki ki tudna probalni?
Wednesday, August 8, 2007 8:22 PM -
Sajnos sp2-n is igy van. Nem tudom, hogy ez bug vagy feature!Thursday, August 9, 2007 10:08 AMModerator
-
Már a connect-en van ilyen request, szavazz te is rá:
https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=272964
De a bol-ban itt leírták:
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/udb9/html/e698c504-24d8-4d2e-bd33-f0d6fe977ffc.htm
Ennél a résznél:
Qualifying Names Inside Stored Procedures
Thursday, August 9, 2007 10:19 AMModerator