Regex for TSQL Columns of View

  • Thread starter Thread starter this User is deleted
  • Start date Start date
T

this User is deleted

Guest
This Script:


CREATE VIEW [dbo].[FAHRAUFTRAGZIEL]

( ANFAHRSTELLEID,

FAHRAUFTRAGID,

FIRMENNR,

SEQ,

UUID,

ADRESSENID,

ADRESSEN_NUMMER,

ANFAHRSTELLE_NUMMER,

ANFAHRSTELLE_NAME,

ANFAHRSTELLE_ANSCHRIFT,

FAHRAUFTRAG_NUMMER

)

AS

SELECT

FAHRAUFTRAGZIEL_T.ANFAHRSTELLEID,

FAHRAUFTRAGZIEL_T.FAHRAUFTRAGID,

FAHRAUFTRAGZIEL_T.FIRMENNR,

FAHRAUFTRAGZIEL_T.SEQ,

FAHRAUFTRAGZIEL_T.UUID,

ANFAHRSTELLE_T.ADRESSENID,

ADRESSEN_T.NUMMER AS ADRESSEN_NUMMER,

ANFAHRSTELLE_T.NUMMER AS ANFAHRSTELLE_NUMMER,

anfAnschrift.NAME AS ANFAHRSTELLE_NAME,

anfAnschrift.ANSCHRIFT AS ANFAHRSTELLE_ANSCHRIFT,

FAHRAUFTRAG_T.NUMMER AS FAHRAUFTRAG_NUMMER

FROM

dbo.FAHRAUFTRAGZIEL_T

INNER JOIN dbo.ANFAHRSTELLE_T ON ANFAHRSTELLE_T.UUID = FAHRAUFTRAGZIEL_T.ANFAHRSTELLEID

INNER JOIN dbo.ANSCHRIFT_T AS anfAnschrift ON anfAnschrift.UUID = ANFAHRSTELLE_T.ANSCHRIFTID

INNER JOIN dbo.ADRESSEN_T ON ADRESSEN_T.UUID = ANFAHRSTELLE_T.ADRESSENID

INNER JOIN dbo.FAHRAUFTRAG_T ON FAHRAUFTRAG_T.UUID = FAHRAUFTRAGZIEL_T.FAHRAUFTRAGID


Should look like this with Regex:

dbo.FAHRAUFTRAGSZIEL

maybe useless cause i know the View-Name

of SELECT-Block:


FAHRAUFTRAGZIEL_T.ANFAHRSTELLEID

FAHRAUFTRAGZIEL_T.FAHRAUFTRAGID

FAHRAUFTRAGZIEL_T.FIRMENNR

FAHRAUFTRAGZIEL_T.SEQ

FAHRAUFTRAGZIEL_T.UUID

ANFAHRSTELLE_T.ADRESSENID

ADRESSEN_T.NUMMER

ANFAHRSTELLE_T.NUMMER

anfAnschrift.NAME

anfAnschrift.ANSCHRIFT

FAHRAUFTRAG_T.NUMMER


of FROM-Block


dbo.FAHRAUFTRAGZIEL_T

dbo.ANFAHRSTELLE_TAN

FAHRSTELLE_T.UUID

FAHRAUFTRAGZIEL_T.ANFAHRSTELLEID

dbo.ANSCHRIFT_T

anfAnschrift.UUID

ANFAHRSTELLE_T.ANSCHRIFTID

dbo.ADRESSEN_T

ADRESSEN_T.UUID

ANFAHRSTELLE_T.ADRESSENID

dbo.FAHRAUFTRAG_T

FAHRAUFTRAG_T.UUID

FAHRAUFTRAGZIEL_T.FAHRAUFTRAGID


That means the Regex hav to be Match : (Word).(Word)

AND A WORD CAN ONLY BE LETTERS AND UNDERSCORE !!!

So I did this:


Regex regCol = new Regex(@"[A-Za-z_].*\.[A-Za-z_].*");
MatchCollection matchesCol = regCol.Matches(sqlScript);



But the result set was not the same i expected:

Per Examples some matches out of the generated regex matchcollection




{FAHRAUFTRAGZIEL_T.ANFAHRSTELLEID, }

{FAHRAUFTRAGZIEL_T.FAHRAUFTRAGID, }

{FAHRAUFTRAGZIEL_T.FIRMENNR, }

{FAHRAUFTRAGZIEL_T.SEQ, }

{FAHRAUFTRAGZIEL_T.UUID, }

{ANFAHRSTELLE_T.ADRESSENID, }

{ADRESSEN_T.NUMMER AS ADRESSEN_NUMMER, }

{ANFAHRSTELLE_T.NUMMER AS ANFAHRSTELLE_NUMMER, }

{INNER JOIN dbo.ANFAHRSTELLE_T ON ANFAHRSTELLE_T.UUID = FAHRAUFTRAGZIEL_T.ANFAHRSTELLEID }

{INNER JOIN dbo.ANSCHRIFT_T AS anfAnschrift ON anfAnschrift.UUID = ANFAHRSTELLE_T.ANSCHRIFTID }

{INNER JOIN dbo.ADRESSEN_T ON ADRESSEN_T.UUID = ANFAHRSTELLE_T.ADRESSENID }


The Question is: why the **** are there floating points and whitespaces

and I need some advice, help or something else :D Thanks in Advance

Continue reading...
 
Back
Top