2008-09-17 5 views
0

Ich bin seit langem ein Fan von Stored Procedure Keyboard Accelerators, wie in this article beschrieben. Als wir von SQL 2000 nach 2005 und von Query Analyzer zu Management Studio wechselten, änderte sich die Handhabung der Argumente. In QA wurden kommagetrennte Argumente automatisch als zwei separate Argumente gelesen. In SSMS - zumindest für mich - wird es als ein Argument gelesen, mit Kommas darin. Wenn ich ein einzelnes Argument mit einfachen Anführungszeichen übergebe, bekomme ich einen Syntaxfehler, , es sei denn, ich entkomme den Anführungszeichen ('->' '). In dem oben verlinkten Artikel geht der Autor davon aus, dass dies für SSMS nicht der Fall sein sollte, aber selbst mit ihrem genauen Beispiel werden kommagetrennte Argumente immer noch als ein Argument auf jeder SSMS-Installation interpretiert, auf der ich sie ausprobiert habe(), die gegen jede SQL Server-Installation laufen, die ich ausprobiert habe (4 davon).Fix Argumentbehandlung in SQL Server 2005 Mgmt Studio benutzerdefinierte Tastaturbeschleuniger Shortcuts?

ZB folgende Eingabe in SSMS,

Person,4 

dann die Auswahl und die Verknüpfung ausgeführt wird, ich die Fehlermeldung „Ungültige Objektnamen‚Person, 4‘erhalten.

Hat jemand irgendwelche Idee, wie man das beheben kann? Verwendet jemand diese Abkürzungen sogar? Ich habe dieses Problem mehrmals in den letzten zwei Jahren gegoogelt und hatte kein Glück.

Edit: Kann ein Problem mit einem spezifischen Build von SSMS sein. Ich habe eine Follow-up-Post unter

Antwort

0

Tims Vorschlag löste mein Problem auf meinem Entwicklungs-PC nicht, aber es überzeugte mich, es erneut von einem anderen PC aus zu versuchen. Wenn ich das SSMS eines anderen PCs verwende, um mich in die Datenbank des Entwicklungs-PCs einzuloggen und genau das zu versuchen, was Tim beschreibt, habe ich das gleiche Verhalten, das Tim beschreibt.

Ich war auch in der Lage, das Argument Parsing-Problem auf den anderen PCs erneut zu replizieren, die ich in der Vergangenheit versucht hatte. Ich hoffe, Tim kann mich wissen lassen, wie die Version und die Build-Nummer auf seiner SSMS-Installation ist, weil meine aktuelle Theorie ist, dass das Problem nur von dem spezifischen Build ist, den meine Kollegen und ich auf unseren Dev-PCs haben "Microsoft SQL Server Management Studio 9.00.1399.00". All unsere Installationen dieser Version haben vor gut einem Jahr stattgefunden, daher weiß ich nicht, ob ich zurückverfolgen kann, von welcher Platte es stammt.

Derjenige, der das Problem NICHT hat, ist eigentlich unser Entwicklungsserver, auf dem "Microsoft SQL Server Management Studio 9.00.3042.00" installiert ist.Ich weiß nicht, ob das etwas sein könnte, das ich durch Patchen oder etwas entfernen kann, aber es sieht derzeit so aus, als ob 1399 die gesamte Auswahl als einzelnes Argument liest, während 3042 etwas vorparsiert. Ich habe kürzlich auch festgestellt, dass, wenn ich in 3042 einen String mit "-" (Kommentar-Token) übergebe, alles nach dem "-" ignoriert wird, während 1399 alles im ersten Argument enthalten ist.

1

Ich habe das nie versucht, bis ich Ihre Frage gelesen habe und dann den Artikel gelesen habe, auf den Sie verwiesen haben, nehmen Sie das mit einem Körnchen Salz.

Das heißt, ich kann den Prozess auf meinem Computer mit SSMS arbeiten, und ich bin auch in der Lage, den Fehler duplizieren zu duplizieren.

Damit dies wie erwartet funktioniert, habe ich den Sproc in der Master-Datenbank erstellt, die Tastenkombination zugewiesen und SSMS neu gestartet. Ich tippte dann den Datenbanknamen.schema_name.table_name in einfache Anführungszeichen, gefolgt von einem Komma und einem Integer-Wert (der von mir getestete Sproc war das GetRows-Beispiel im Artikel). Ich war immer noch mit der Master-Datenbank verbunden.

Dies funktionierte ohne Zwischenfall.

Um denselben Fehler zu erhalten, den Sie erwähnten, entfernte ich entweder den Verweis auf den Schemanamen oder den Datenbanknamen und empfing den gleichen Fehler, den Sie gemacht haben.

Vielleicht müssen Sie den Datenbanknamen und den Schemanamen vor dem Tabellennamen hinzufügen?

+0

Können Sie überprüfen, was Ihre genaue Version/Build von SSMS ist? Das behebt das Problem meines Haupt-PCs nicht, aber nach Ihrem Kommentar konnte ich Ihre Ergebnisse mit einem anderen PC mit einer anderen Build-Nummer replizieren. Ich untersuche gerade mehr; wird vollständige Ergebnisse in einer Bearbeitung meiner Frage veröffentlichen. –

0

Ich benutze auch SSMS Version 9.00.3042.00, was wahrscheinlich erklärt, warum es auf meinem Rechner funktioniert.

0

Stimmen Sie mit Tim überein. Ich habe gerade auf SQL Server 05 SP2 aktualisiert und ich bestätige, dass dieser Fehler behoben wird.

Verwandte Themen