Was verursacht "falsche Syntax in der Nähe des Namens der gespeicherten Prozedur" in EF Code First und SQL 2005?

8

Die Beispiele für die System.Data.Entity.Database.SqlQuery-Methode, die ich gefunden habe, scheinen mit SQL 2008 R2 gut zu funktionieren, scheinen aber nicht mit SQL 2005 zu funktionieren.

Dieser Aufruf funktioniert mit SQL 2008 R2:

%Vor%

In SQL 2005 wird diese Anweisung jedoch eine SqlException mit der Fehlermeldung "Inkorrekte Syntax in der Nähe von 'GetDataFromMySp'" auslösen.

    
Dan Mork 19.06.2011, 17:23
quelle

2 Antworten

18

Lösung von @Dan selbst gefunden (konnte wegen rep nicht posten)

Die Lösung, die ich für dieses Problem gefunden habe, war einfach, der Abfrage das Schlüsselwort "EXEC" hinzuzufügen:

%Vor%

Diese Lösung hat das Problem mit SQL Server 2005 behoben und funktionierte weiterhin mit SQL Server 2008 R2.

    
PedroC88 19.06.2011, 17:30
quelle
4

Sie brauchen EXEC nur, wenn vor dem Aufruf von "GetDataFromMySp" im Batch irgendwelche Anweisungen stehen. Der Name einer gespeicherten Prozedur sollte in Ordnung sein.

Ich würde SQL Profiler ausführen, um zu sehen, was tatsächlich von EF gesendet wird.

Dinge wie "vorbereitete Anweisungen" geben zusätzliche Befehle als Teil des Stapels zusätzlich zu Ihrem Befehlstext aus.

Siehe hierzu: Ссылка

    
gbn 19.06.2011 17:31
quelle