SQL CLR Prozedur Standardparameter in der VS2008-Bereitstellung?

8

Ich weiß, dass ich Standardwerte für CLR-Prozeduren beim Erstellen der Prozedur in der Datenbank wie folgt definieren kann:

%Vor%

Was ich nicht herausfinden kann, ist, ob es irgendeine Möglichkeit gibt, Visual Studio davon zu überzeugen, dies automatisch zu tun, wenn es die Option "Projekt bereitstellen" verwendet ...

Gibt es ein Attribut, das man auf ein Argument setzen kann, um Visual Studio mitzuteilen, was der Standardwert für dieses Argument sein soll, wenn es den Proc in der Datenbank erzeugt?

Update: Ich habe versucht, die NULL-Zulässigkeit "SqlFacet" zu setzen, das schien keine Wirkung zu haben (was sinnvoll ist, denke ich - afaik gespeicherten proc params sind immer Nullable?)

%Vor%     
Tao 21.06.2011, 06:04
quelle

2 Antworten

1
  

Gibt es ein Attribut, das man auf ein Argument setzen kann, um visual studio mitzuteilen, was der Standardwert für dieses Argument sein soll, wenn es den proc in der Datenbank erstellt?

Ab heute ist die Antwort leider ein klares "Nein". SSDT unterstützt nicht viele Optionen, z. B. die Angabe von WITH RETURNS NULL ON NULL INPUT für skalare UDFs usw.

Ich habe einen Connect-Vorschlag zur Unterstützung von Parameterstandards geöffnet, SSDT - Unterstützung T-SQL-Parameter Standardwerte für SQLCLR-Objekte über die SqlFacet-Attribut beim Generieren der Veröffentlichung und Erstellen Sie SQL-Skripte , aber das offizielle Wort ist bisher: "tolle Idee, aber nicht in absehbarer Zeit".

Daher ist es jetzt am besten, ein Post-Deployment-Skript (in SQL Server / Benutzerskripten) zu erstellen und entweder

hinzuzufügen
  • ALTER -Anweisungen (bei Verwendung der Option "DDL generieren") oder
  • CREATE -Anweisungen (wenn die Option "DDL erzeugen" nicht verwendet wird)

dort, um die Stored Procedure und / oder Function Eigenschaften wie gewünscht neu zu definieren. Das Post-Deployment-Skript wird an das Ende des generierten Bereitstellungsskripts angehängt.

Ich arbeite auch an etwas, das hoffentlich dieses klaffende Loch im SSDT-Veröffentlichungsprozess behebt und es ermöglicht, diese Optionen programmatisch festzulegen. Wenn ich es funktioniere, werde ich diese Antwort mit den Details aktualisieren.

    
Solomon Rutzky 28.08.2015, 15:07
quelle
0

Sie können die Standardwerte in der Funktion definieren. Sie werden verwendet, wenn NULL vom zugrunde liegenden SQL-seitigen Wrapper übergeben wird. Erklären Sie einfach Prozedurparameter ohne Standardwerte und setzen Sie Standardwerte auf die Funktion. Es sollte in Ordnung sein.

    
pirho 13.07.2011 22:36
quelle