Announcement

Collapse
No announcement yet.

VarType() in SQL

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • VarType() in SQL

    Hallo,

    da es in SQL, zumindest habe ich nichts gefunden, ein VarType gibt, welches mir sagt, was als Inhalt in einer Spalte drin steckt (ich meinte nicht die Tabellendefinition, die ich aus dem Schema auslesen kann), habe ich mal eine Prozedur gebaut.

    Ich weiss aber nicht, ob die Weisheit letzter Schluss ist Discuss...

    Code:
    CREATE PROCEDURE sp_VarType(@typestring AS nvarchar(250) = '')
    AS
    BEGIN
      DECLARE @return int
      SET @return = 0
      BEGIN TRY
    	SET @typestring = CAST(@typestring AS int)
      END TRY
      BEGIN CATCH
        SET @return = 1
      END CATCH
      SELECT @return
    END
    EXECUTE @RC = [latest].[dbo].[sp_VarType] 'fsdfdsfdsf'

    liefert dann 1

    EXECUTE @RC = [latest].[dbo].[sp_VarType] '1212121'

    liefert dann 0

    Die Rückgabewerte und die Menge kann man natürlich anpassen/erweitern. Geht aber ums Grundprinzip...
    Freundliche Grüße
    Yves Rausch

  • #2
    macht das IN MS_Sql nicht die Function Isnumeric () ?

    Comment


    • #3
      Vom Prinzip her okay, vor allem, wenn man es um eigene Typen erweitern will. Ich würde das aber als FUNCTION und nicht als PROCEDURE schreiben, weil eine function flexibler zu verwenden ist.

      bye,
      Helmut

      Comment


      • #4
        Originally posted by ebis View Post
        macht das IN MS_Sql nicht die Function Isnumeric () ?
        Ja, aber nur für Zahlen Mein Beispiel war halt rudimentär, gilt es halt auszubauen...
        Freundliche Grüße
        Yves Rausch

        Comment


        • #5
          Originally posted by hwoess View Post
          Vom Prinzip her okay, vor allem, wenn man es um eigene Typen erweitern will. Ich würde das aber als FUNCTION und nicht als PROCEDURE schreiben, weil eine function flexibler zu verwenden ist.

          bye,
          Helmut
          Hätte ich auch gerne Aber ein BEGIN TRY meckert der SQL Server an, dass das in FUNCTIONS nicht erlaubt ist ?! Vielleicht weisst Du ja ne Lösung...
          Freundliche Grüße
          Yves Rausch

          Comment


          • #6
            Arrrgghhhh - darauf vergesse ich immer. TRY/CATCH ist in UDF's nicht möglich. Du müsstest also so vergleichen, dass du ohne dem auskommst. Für Zahlen ist es ja mit ISNUMERIC schon mal kein Problem. Und deine eigenen Typprüfungen müsstest du dann auch dahingehend programmieren. Ich würde mir das auf jeden Fall gut überlegen, ob das nicht trotzdem besser als eine stored proc ist.

            bye,
            Helmut

            Comment

            Working...
            X