Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#18

Re: Source Code Formatter für SQL gesucht

  Alt 26. Nov 2006, 16:56
Zitat von guidomarcel:
Hallo,
Ich wäre im übrigen sehr dankbar für Formatierungsvorschläge, vor allem bei den Stored Procedures.
Dann möchte ich mal meinen Wunschzettel abgeben

SQL-Code:
CREATE PROCEDURE PROC_123
   @ID_AgentGroups UNIQUEIDENTIFIER
  ,@ID_AddressPool UNIQUEIDENTIFIER
  ,@Egal BIT
AS
BEGIN
---------------------------------------------------------------------------------------
/*
Prozedur Beschreibung und
Copyright
*/

---------------------------------------------------------------------------------------

  -- einzeilige Kommentare beginnen über dem ersten Zeichen des 1. Wortes der Folgezeile
  -- wenn in der selben Zeile kein SQL Code steht
  SELECT a FROM b -- oder 4-8 Tabs hinter dem SQL-Code

/*
mehrzeilige Kommentare beginnen am Anfang der Zeile
*/


  -- lokale Variablen
  DECLARE @ABC INT -- keine Zeerzeilen zwischen 2 Deklarationen
  DECLARE @BCD VARCHAR(10) -- eine Zeerzeile nach der letzten Deklarationen

  -- Definitionen
  SET NOCOUNT ON -- eine Leerzeile nach jedem syntaktischen Block
                                   -- (SET ; SELECT ; INSERT ; UPDATE usw)

  -- Daten sammelm
  SELECT
    A.ABC
   ,B.BCD
   ,B.CDE
   ,A.DEF
   ,B.EFG
  INTO #aTempTable
  FROM
    aTable A
    INNER JOIN
      (
        SELECT
          B AS BCD
         ,C AS CDE
         ,EFG,
         ,DEF
        FROM
          SonstWo

        UNION ALL -- UNION (ALL) durch Leerzeilen getrennt

        SELECT -- Mehrspaltiger (Sub-)SELECT mit Umbruch
          B AS BCD
         ,C AS CDE
         ,EFG,
         ,DEF
        FROM
          NochWoanders
        WHERE
          EFG IN
            (
              SELECT E FROM eTable -- einspaltiger (Sub-)Select ohne Umburch
            )
          AND
          EFG IS NOT NULL
          OR
          ID < 10000
      ) B
    ON B.DEF = A.DEF -- nach ON 2 Leerzeichen, damit AND ordentlich
    AND B.BCD IS NOT NULL -- darunter passt

  SET NOCOUNT ON

  INSERT INTO abcTable -- ein INSERT INTO SELECT Block, also keine Leerzeile
  SELECT * FROM #aTempTable

  SELECT * FROM #aTempTable

END
berechnete Felder hätte ich gerne so formattiert:
(bitte keine Kritik zu dem Beispiel-SQL-Code, ich kenne die ISNULL Funktion )

SQL-Code:
SELECT
    CASE
        WHEN dbo.SYS_Agents.Vorname IS NOT NULL
        THEN dbo.SYS_Agents.Vorname
        ELSE 'Agent gelöscht'
    END AS Vorname
    ,
    CASE
        WHEN dbo.SYS_Agents.Nachname IS NOT NULL
        THEN dbo.SYS_Agents.Nachname
        ELSE 'Agent gelöscht'
    END AS Nachname
    ,
    CASE
        WHEN dbo.SYS_Agents.Fullname IS NOT NULL
        THEN dbo.SYS_Agents.Fullname
        ELSE 'Agent gelöscht'
    END AS Fullname
    ,
    usw.


Schöne Grüße,
Jens
  Mit Zitat antworten Zitat