SQL Server2008

Alfred_

Erfahrenes Mitglied
Hi,
ich wechsle von MySql zu MSSql, da mir Kasperskys Fehlermeldung nicht gefällt(siehe Anhang!).
Das Erstellen einer (leeren) Datenbank funktioniert, aber nicht bei dem Anfügen einer Tabelle.
Code:
   Dim myConn1 As SqlConnection = New SqlConnection("Data Source=XYZ\SQLEXPRESS;Integrated security=SSPI")

    Dim oPfad1 As String = "C:\Programme\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\"

    str1 = "CREATE DATABASE stammdaten ON PRIMARY " & _
          "(NAME = stammdaten_data, " & _
          "FILENAME = '" & oPfad1 & "stammdaten.mdf', " & _
          "SIZE = 3MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " & _
          "LOG ON (NAME = stammdaten_log, " & _
          "FILENAME = '" & oPfad1 & "stammdaten_log.ldf', " & _
          "SIZE = 1MB, MAXSIZE = 5MB, FILEGROWTH = 10%)"
    Dim myCommand1 As SqlCommand = New SqlCommand(str1, myConn1)

    Dim curFile1 As String = "C:\Programme\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\stammdaten.mdf"
    Try
      If myConn1.State = ConnectionState.Open Then myConn1.Close()
      myConn1.Open()
      If Not File.Exists(curFile1) Then
        myCommand1.ExecuteNonQuery()
      End If
    Catch sqlExc As SqlException
      MsgBox(sqlExc.Message, MsgBoxStyle.Information)
      MessageBox.Show(sqlExc.ToString, "SQL Exception Error!", _
      MessageBoxButtons.OK, MessageBoxIcon.Error)
      Application.Exit()
      Me.Dispose()
      Me.Close()
    Finally
      myConn1.Close()
    End Try
Jetzt Create Table:
Code:
    Dim myConn As SqlConnection = New SqlConnection("Data Source=XYZ\" & _
                                                    "SQLEXPRESS;Initial Catalog=stammdaten;Integrated security=SSPI")
    Dim str As String = String.Empty
    str = "USE stammdaten.mdf;" & _
    "CREATE TABLE tbluser (" & _
    "UserID INTEGER AUTO_INCREMENT PRIMARY KEY (UserID)," & _
    "UserName VARCHAR(12) NOT NULL," & _
    "Passwort VARCHAR(15) NOT NULL)"
    Dim myCommand As SqlCommand = New SqlCommand(str, myConn)

    Try
      myConn.Open()
      myCommand.ExecuteNonQuery()
    Catch sqlExc As SqlException
      MsgBox(sqlExc.Message, MsgBoxStyle.Information)
      MessageBox.Show(sqlExc.ToString, "SQL Exception Error!", _
      MessageBoxButtons.OK, MessageBoxIcon.Error)
    Finally
      If myConn.State = ConnectionState.Open Then myConn.Close()
    End Try
Hier erhalte ich die Meldung: Falsche(******) Syntax in der Nähe von '.'.
und:Falsche(******) Syntax in der Nähe von 'AUTO_INCREMENT'
Wo liegt hier mein Fehler?

Das bewährte Try/Error verhalf mir zu etwas Erfolg:
str = "USE stammdaten; " & _
"CREATE TABLE tbluser (" & _
"UserID INT IDENTITY PRIMARY KEY (UserID)," & _
"UserName VARCHAR(12) NOT NULL," & _
"Passwort VARCHAR(150) NOT NULL)"
Die Anbindung ist zwar gelungen, aber noch nicht die Einbindung 'IF EXISTS' bzw 'IF NOT EXISTS';
Ob ich 'CREATE TABLE tbluser IF EXISTS' oder: 'DROP TABLE tbluser' verwende, es gibt es eine Fehlermeldung.
Alfred

Warum in die Ferne schweifen, wenn das Gute doch so nah....?;)
Die Lösung bot der Script-Editor im Management Studio!
Alfred
 

Anhänge

  • Kaspersky.jpg
    Kaspersky.jpg
    45,5 KB · Aufrufe: 15
Zuletzt bearbeitet:
Zurück