Ich erhalte den unteren Fehler für die angegebene Funktion.
Nachricht 2010, Ebene 16, Status 1, Prozedur GetTableFromDelimitedValues, Zeile 2 Änderung von 'dbo.GetTableFromDelimitedValues' kann nicht ausgeführt werden, da es sich um einen inkompatiblen Objekttyp handelt.
%Vor%Kann jemand bitte mir helfen, den kompatiblen Typ zu erhalten, indem ich die Funktion repariere?
Sie müssen DROP und CREATE die Funktion in diesem bestimmten Kontext
erstellenDa der Funktionsrückgabetyp geändert wurde, müssen wir ihn löschen und dann die Funktion neu erstellen.
Es gibt drei Arten von Funktionen,
ALTER kann nicht zum Ändern des Funktionstyps verwendet werden.
in OBJECT_ID
Funktion müssen Sie nur den Funktionsnamen und nicht das Schema übergeben. und warum würde es zuerst erstellen und dann Alter
es. Überprüfen Sie einfach die Existenz 1. Wenn es existiert, dann fallen lassen Funktion und erstellen Sie Ihre Funktion, wie ich oben gezeigt habe.
Fügen Sie auch Type
in der where-Klausel nicht hinzu, wenn es nach Existenz sucht. Wenn es ein anderes Objekt gibt, das keine Funktion ist, aber kein anderes Objekt mit demselben Namen, wird es nicht in Ihrer select-Anweisung aufgenommen Erstellen einer Funktion mit einem Namen ein Objekt existiert bereits (dies wird einen Fehler auslösen).
WENN du es auf deine Art machen willst, so würdest du darüber gehen
%Vor% Ich habe etwas, das Sie über Ihren Fehler im Zusammenhang mit Ihrem Code informieren müssen:
Der Fehler sagt Cannot perform alter on 'dbo.GetTableFromDelimitedValues' because it is an incompatible object type
Das bedeutet, dass Sie nach dem ALTER....
auf Ihre Zeilen schauen müssen
Und ja, t ist das:
@input varchar(max)
Der SQL Server 2008 r2 akzeptiert keine Objekte varchar(MAX)
, aber das ist nur dann der Fall, wenn Sie eine gespeicherte Prozedur ausführen
Denn wenn Sie eine Tabelle von Hand erstellen, akzeptieren Sie sie vollständig.
Wenn Sie eine große Zelle möchten, dann geben Sie varchar(1024)
oder varchar(2048)
ein, die beide akzeptiert werden. Ich habe dieses Problem vor ein paar Tagen ...
Das ist meine bescheidene Meinung
ZUSÄTZLICHE ÄNDERUNGEN
Benutze dieses
.... Achten Sie auf den Wechsel von "zu"
** ZUSÄTZLICHE ÄNDERUNGEN **
Ich benutze das Folgende, was auch gut funktioniert ... ohne irgendein Problem ...
%Vor%Ich bestätige, dass der folgende Code funktioniert. Scheint, dass das Problem irgendwie eine Skalarwertfunktion war, die während meiner Entwicklung mit dem gleichen Namen erstellt wurde, und bekam einen Fehler, da die mehrteilige Tabellenwert-Alter-Anweisungsfunktion des Skripts damit kompatibel ist.
%Vor%Tags und Links sql sql-server sql-server-2008 sql-function create-function