Ich habe eine Prozedur, die als Argument den Funktionsnamen verwendet und dann den vollständigen Text der Funktion findet und in einer lokalen Variablen V_FullString
speichert .Exportieren Sie das Ergebnis der gespeicherten Prozedur in Textdatei, da mein Computer als Client/Server arbeitet.
Ich brauche diese Ausgabe nicht im Bildschirm zu zeigen, anstatt es in Textdatei zu setzen.
Ist es möglich?
ALTER PROCEDURE [dbo].[SP_DictionaryFunction]
@P_FunctionName VARCHAR(100)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @V_ObjectName varchar(100) = @P_FunctionName;
DECLARE @V_FULLSTRING VARCHAR(5000) = ''
IF EXISTS (SELECT object_id FROM SYS.objects
WHERE object_id = OBJECT_ID(@V_ObjectName))
BEGIN
DECLARE @V_TABLE TABLE (Line VARCHAR(500))
INSERT INTO @V_TABLE
EXECUTE SP_HELPTEXT @V_ObjectName
SELECT @V_FULLSTRING = @V_FULLSTRING + Line
FROM @V_TABLE
PRINT @V_FULLSTRING
END
END
Ist dies ein einmaliger Export? –
Randnotiz: Sie sollten ** nicht ** das Präfix 'sp_' für Ihre gespeicherten Prozeduren verwenden. Microsoft hat [dieses Präfix für seine eigene Verwendung reserviert (siehe * Gespeicherte Prozeduren benennen *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx), und Sie riskieren irgendwann in der Zukunft einen Namenskonflikt. [Es ist auch schlecht für die Leistung Ihrer gespeicherten Prozedur] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Es ist am besten, einfach 'sp_' zu vermeiden und etwas anderes als Präfix zu verwenden - oder gar kein Präfix! –
Das größte Problem hier ist wahrscheinlich der 'Print'; Viele Tools ignorieren "print" (oder: ignorieren sie standardmäßig, mit einer Option, um sie zu aktivieren). Wenn Sie 'select' anstelle von' print' verwenden, wird es wahrscheinlich ** einfach funktionieren **. –