ASP.NET Zone

Die ASP.NET Community. Alle Antworten rund um Microsoft® Webtechnologien
Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe | Impressum | ASP.NET Zone Suchplugin

in
Home Blogs Foren FAQ Communities Fotos Downloads

sql datenbank erstellen

Letzter Beitrag 08-03-2015, 11:51 von Stefan Falz. 3 Antworten.
Beiträge sortieren: Zurück Weiter
  •  08-10-2012, 10:19 224569

    sql datenbank erstellen

    hallo,

    ich bin absolut neu und habe noch nicht viel ahnung...

    ich möchte anhand von 2 sql-scripts (.sql) eine datenbank erstellen (windows web server 2008).
    die scripts sehen so aus:

    =================== create.sql ================================
    USE [master]

    IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'gsmlanka')
        DROP DATABASE [gsmlanka]
    GO

    CREATE DATABASE [gsmlanka]
    GO
    ===========================================================

    ================= build.sql ====================================
    PRINT 'CREATING User dbo'
    if not exists (select * from dbo.sysusers where name = N'dbo' and uid < 16382)
        EXEC sp_grantdbaccess N'sa', N'dbo'
    GO





    PRINT 'CREATING TABLE Users'
    CREATE TABLE [Users] (
        [UserID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
        [Pass_word] [varchar] (16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [F_Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [L_Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Bday] [char] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Gender] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Email] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Country] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Zip] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Address] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Phone] [char] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Sec_Question] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Answer] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Priviladge] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [Posts] [int] NULL ,
        [JoinedDate] [char] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        [ImageURL] [varchar] (300) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
        CONSTRAINT [PK_Users] PRIMARY KEY  CLUSTERED
        (
            [UserID]
        )  ON [PRIMARY]
    ) ON [PRIMARY]
    GO
    =========================================================

    wie bzw wo wende ich die scrips an?

    danke
  •  08-10-2012, 11:29 224570 Antwort zu 224569

    AW: sql datenbank erstellen

    Hi,

    dafür brauchst Du noch einen Datenbankserver. In deinem Fall dürfte der kostenlose SQL Server Express (ich würde 2008 R2 oder gleich 2012 verwenden) ausreichen. Wenn du also noch keinen SQL Server hast, musst Du diesem auf (d)einem Server installieren und die Skripte dann entsprechend über das SQL Server Management Studio ausführen.

    SQL Server 2008 R2 Express mit Verwaltungstools
    SQL Server 2012 Express mit Verwaltungstools (hier entweder die DEU\x64\SQLEXPRWT_x64_DEU.exe oder DEU\x86\SQLEXPRWT_x86_DEU.exe, je nachdem, ob Du ein 32 oder 64 Bit OS hast)


    --
    Gruß, Stefan Falz
    Microsoft MVP - Visual Developer ASP/ASP.NET
    ASP.NET Consulting, Development, Coaching

    ASP.NET Zone - Leitfaden für gute Postings

    Xtopia 2008 - Gewinnspiel / Expression Studio und Xtopia Eintrittskarten zu gewinnen
  •  07-31-2015, 15:02 225880 Antwort zu 224570

    AW: sql datenbank erstellen

    Hallo Stefan, ich habe auch ein ähnliches Script. Habe ich die Möglichkeit, dieses Script, zur Erstellung von Tabellen, über asp.net aufzurufen?

    Der Gedanke ist der, das ich beim ersten Aufruf der Webanwendung, alle erforderlichen Tabellen erstelle (Datenbankstruktur).

    VG Frank
  •  08-03-2015, 11:51 225881 Antwort zu 225880

    AW: sql datenbank erstellen

    Hi,

    generell kannst Du auch solche SQL Statements per .NET gegen die Datenbank absetzen. Du solltest aber bedenken, dass solche Statements wie CREATE TABLE ... erheblich mehr Rechte benötigen als bspw. SELECT Statements. Es wäre daher anzuraten, für diese Arbeiten einen separaten SQL Benutzer zu verwenden und den Rest der Anwendung mit einem anderen SQL Benutzer arbeiten zu lassen.

    Zudem ist es in der Regel nicht sinnvoll, solche Arbeiten erst beim ersten Aufruf der Webanwendung durchzuführen. Ich persönlich würde mir, wenn ich sowas in der Art machen müsste, eine spezielle, passwortgeschützte "Setupseite" erstellen, die ich dann aufrufen und die Arbeiten durchführen lassen kann.

    Zur Abarbeitung selbst: Ich würde mir die SQL Skripte als Resource oder als Datei ablegen und deren Inhalt bspw. per File.ReadAllText dann je nach Bedarf auslesen, ein SqlCommand Objekt erstellen und dieses dann per ExecuteNonQuery ausführen.

      https://msdn.microsoft.com/de-de/library/ms143368.aspx

      https://msdn.microsoft.com/de-de/library/system.data.sqlclient.sqlcommand.executenonquery.aspx

    Achte nur darauf, dass ein komplettes, generiertes Skript mit GO Anweisungen nicht funktionieren wird, da GO nur eine Anweisung für das SQL Server Management Studio ist und ansonsten zu Fehlern führt. Ansonsten sollte es aber soweit problemlos klappen.


    --
    Gruß, Stefan Falz
    Microsoft MVP - Visual Developer ASP/ASP.NET
    ASP.NET Consulting, Development, Coaching

    ASP.NET Zone - Leitfaden für gute Postings

    Xtopia 2008 - Gewinnspiel / Expression Studio und Xtopia Eintrittskarten zu gewinnen
Als RSS Feed in XML ansehen
Powered by Community Server (Commercial Edition)