Benutzer mit den meisten Antworten
Stored Procedure schon vorhanden, wird aber nicht angezeigt

Frage
-
Hallo,
wenn ich eine Stored Procedure mit Create anlegen will, sagt mir die Fehlermeldung dass die SP schon vorhanden ist. Ich kann diese SP aber beim besten Willen im DB Explorer nicht finden. Auch klicken auf Refresh beim Zweig Stored Procedures hilft nichts. Meine Desktop App die per DAL auf diese SP zugreifen will, wirft auch eine Exception mit der Meldung "SP nicht vorhanden". Ich habe schon versucht, mittels DROP die SP zu löschen. Es kommt "Command completed sucessfully". Das darauf folgende CREATE wirft aber Msg 2714, Level 16, State 3, Procedure GetUsersWhere, Line 26
There is already an object named 'GetUsersWhere' in the database.
Was mache ich falsch?
lg
florian
Antworten
-
Vielen Dank für die Hilfe, ich hab mein Problem gelöst. Ich hatte die Scripts immer per Doppelklick auf das *.sql file gestartet (im Windows Explorer), dann Connected, dann Execute --> er hats in die MASTER Tabelle reingeschrieben...
Lösung: ich hab vor den CREATE Commands einfach ein USE 'myDB' GO eingefügt, jetzt funkts auch wieder...
Danke für die Hilfe anyway!- Als Antwort markiert Robert BreitenhoferModerator Freitag, 21. August 2009 14:56
Alle Antworten
-
Sofern du keinen Schemanamen für die Prozedur angibst, erstellt SQL Server die Prozedur im Standardschema des jeweiligen Benutzers, der den CREATE PROCEDURE Befehl ausführt. Wahrscheinlich ist dieses Schema ein anderes als Dein DAL verwendet.
Schau mal im Objektexplorer unter Security->Schema ob es da "unerwünschte" Einträge gibt und erstelle die Prozedur mit expliziter Schemaname.Objectname Konvention. Deine DAL sollte ebenfalls diese Konvention verwenden.Dies hilft Dir vielleicht weiter: http://msdn.microsoft.com/en-us/library/ms190387(SQL.90).aspx
-- Frank Kalis Microsoft SQL Server MVP Webmaster: http://www.insidesql.org -
Evtl. weil der Name irrtümlich für ein anderes Objekt (Tabelle, Sicht o. ä.) verwendet wurde,
denn solche Namen müssen eindeutig sein. Probiere malSELECT * FROM sys.all_objects WHERE name = N'securityGetUsersWhere';
Anhand der type Spalte kannst Du den Typ des Objekts ermitteln.
Siehst Du das Objekt immer noch nicht, so kann es daran liegen, dass Du zu wenig
Rechte hast, siehe Konfigurieren der Sichtbarkeit von MetadatenGruß Elmar
-
Vielen Dank für die Hilfe, ich hab mein Problem gelöst. Ich hatte die Scripts immer per Doppelklick auf das *.sql file gestartet (im Windows Explorer), dann Connected, dann Execute --> er hats in die MASTER Tabelle reingeschrieben...
Lösung: ich hab vor den CREATE Commands einfach ein USE 'myDB' GO eingefügt, jetzt funkts auch wieder...
Danke für die Hilfe anyway!- Als Antwort markiert Robert BreitenhoferModerator Freitag, 21. August 2009 14:56