Christian H.: Microsoft SQL SERVER richtiges query

Hallo und Grüße

Ich versuche gerade ein SQL Statement über das managementstudio express direkt an meien SQLEXPRESS Server loszuwerden dieser Lautet:

  
  
INSERT INTO [ebook].[dbo].[Benutzer]  
           ([BenutzerID]  
           ,[Anrede]  
           ,[Titel]  
           ,[Vorname]  
           ,[Nachname]  
           ,[Strasse]  
           ,[Adresszusatz]  
           ,[PLZ]  
           ,[Ort]  
           ,[Land]  
           ,[Geburtstag]  
           ,[eMail]  
           ,[Passwort]  
           ,[AGB]  
           ,[Datenschutz]  
           ,[RegisterID]  
           ,[Angelegt]  
           ,[Bestaetigt])  
     VALUES  
           (<BenutzerID, int,>  
           ,<Anrede, varchar(50),>  
           ,<Titel, varchar(50),>  
           ,<Vorname, varchar(50),>  
           ,<Nachname, varchar(50),>  
           ,<Strasse, varchar(50),>  
           ,<Adresszusatz, varchar(50),>  
           ,<PLZ, varchar(50),>  
           ,<Ort, varchar(50),>  
           ,<Land, varchar(50),>  
           ,<Geburtstag, datetime,>  
           ,<eMail, varchar(255),>  
           ,<Passwort, varchar(50),>  
           ,<AGB, bit,>  
           ,<Datenschutz, bit,>  
           ,<RegisterID, varchar(50),>  
           ,<Angelegt, datetime,>  
           ,<Bestaetigt, datetime,>)  
  

sorry ein wenig lang. Nun bekomme ich die Fehlermeldung

Meldung 102, Ebene 15, Status 1, Zeile 21
Falsche Syntax in der Nähe von '<'.

das ist gleich die Zeile unter Values.

Ich glaube ich sehe den Wald vor lauter Bäumen nicht.
Woran liegt der Fehler?

Grüße Christian

  1. Hi Christian!

    Ich glaube ich sehe den Wald vor lauter Bäumen nicht.
    Woran liegt der Fehler?

    Eine Benutzer-ID vom Typ int sollte eine Zahl sein.
    Die Anrede vom Typ varchar(50) sollte ein String sein.
    Der Titel vom Typ varchar(50) sollte ein String sein.

    Soll ich weiter machen?

    Möchtest du die Tabelle "Benutzer" erstellen oder in ihr einen Eintrag tätigen?

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hi Christian!

      »» Ich glaube ich sehe den Wald vor lauter Bäumen nicht.
      »» Woran liegt der Fehler?
      Eine Benutzer-ID vom Typ int sollte eine Zahl sein.
      Die Anrede vom Typ varchar(50) sollte ein String sein.
      Der Titel vom Typ varchar(50) sollte ein String sein.

      Soll ich weiter machen?

      Möchtest du die Tabelle "Benutzer" erstellen oder in ihr einen Eintrag tätigen?

      MfG H☼psel

      Hallo Höpsel

      Vielen Dank für das schnelle antworten.

      einen eintrag tätigen..also die tabelle mit ihren spalten existiert schon.
      das mit den Formaten ist mir bewußt.

      Die Values zeilen müßten dann wie folgt aussehen oder? ( ' oder " ??)

        
                 (<'123', int,>  
                 ,<'Herr', varchar(50),>  
                 ,<'testtitel', varchar(50),>  
      
      

      Grüße Christian

      1. Hi Christian!

        Hallo Höpsel

        Hopsel! =)

        Die Values zeilen müßten dann wie folgt aussehen oder?

        (<'123', int,>
                   ,<'Herr', varchar(50),>
                   ,<'testtitel', varchar(50),>

          
        Nein.  
        Wieso möchtest du den Wertebereich noch einmal angeben, wenn die Tabelle schon existiert? Und woher hast du überhaupt diese Syntax?  
          
        Richtig wäre:  
        ~~~sql
                   (123  
                   ,'Herr'  
                   ,'testtitel'
        

        ' oder " ?

        Strings werden bei MSSQL mit dem einfachen Anführungszeichen gekennzeichnet. Inwiefern doppelte unterstützt werden, musst du austesten.

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. Hallo,

          Strings werden bei MSSQL mit dem einfachen Anführungszeichen gekennzeichnet. Inwiefern doppelte unterstützt werden, musst du austesten.

          das hängt von der Einstellung QUOTED_IDENTIFIER ab.

          In der Standardeinstellung

          SET QUOTED_IDENTIFIER ON

          können nur einfache Anführungszeichen verwendet werden. Bei

          SET QUOTED_IDENTIFIER OFF

          können auch doppelte Anführungszeichen zum Begrenzen von Zeichenketten verwendet werden.

          Freundliche Grüße

          Vinzenz

          1. Hallo,

            »» Strings werden bei MSSQL mit dem einfachen Anführungszeichen gekennzeichnet. Inwiefern doppelte unterstützt werden, musst du austesten.

            das hängt von der Einstellung QUOTED_IDENTIFIER ab.

            In der Standardeinstellung

            SET QUOTED_IDENTIFIER ON

            können nur einfache Anführungszeichen verwendet werden. Bei

            SET QUOTED_IDENTIFIER OFF

            können auch doppelte Anführungszeichen zum Begrenzen von Zeichenketten verwendet werden.

            Freundliche Grüße

            Vinzenz

            Ah was ich da hatte war wohl die Struktur der Datenbank. Mich düngt ich muß mich wohl etwas mit sql beschäftigen. Trotzdem vielen Dank für eure Hilfe.
            einfache anführungszeichen waren es gewesen.

            Grüße Christian