Angenommen, ich habe eine folgende gespeicherte Prozedur:SQL Server gespeicherte Prozedur: Einstellung Standardwert für Eingabeparameter obwohl Abfrageausführungs
CREATE PROCEDURE test
@my_var varbinary
AS
SELECT @my_var as my_var
Allerdings mag ich es so modifizieren, dass @my_var
einen Standardwert hat. Ich weiß nicht, was das für ein Wert ist, aber ich weiß, wo ich es in der Datenbank finde.
Etwas wie:
declare @var int
SELECT @var = my_variable from my_table where something = 'what I need'
GO
CREATE PROCEDURE test
@my_var varbinary = @var
AS
SELECT @my_var as my_var
schlägt jedoch fehl, dies. Es scheint, dass @var aus dem Rahmen fällt.
Ist es möglich, etwas in dieser Art zu tun?
Vielen Dank!
Wird sich dieser Wert jemals ändern, oder wird er während der gesamten Lebensdauer unverändert bleiben? die gespeicherte Prozedur? –
Es kann, aber ich möchte nur die Abfrage nur einmal ausführen, greifen Sie diesen Wert und legen Sie es als Standard in den SP. Mit anderen Worten, die Abfrage gibt nicht unbedingt den gleichen Wert von jetzt bis zum Ende der Zeiten zurück, aber ich interessiere mich nur für den Wert, den ich mit dieser Abfrage in diesem Moment ergreife, wenn ich den SP erstelle. Aus diesem Grund ist es leider keine Option, den Standardwert auf NULL zu setzen und die if-Prüfung innerhalb des SP durchzuführen und eine Abfrage von dort aufzurufen. – doubleOK
Sie wählen _inside_ den proc, direkt nach 'AS' und setzen den Wert von' @ my_var' –