Creazione database sql server da codice

venerdì 12 marzo 2010 - 16.16

asso_78 Profilo | Newbie

Ciao,

avrei bisogno di creare un database sql server direttamente da codice utilizzando vb net, come potrei fare?
Considerando che poi anche il path del filename del log e del db potrebbe essere in posizioni differenti

Grazie
ciao

asso

lbenaglia Profilo | Guru

>avrei bisogno di creare un database sql server direttamente da
>codice utilizzando vb net, come potrei fare?
Utilizzare il comando CREATE DATABASE:
http://msdn.microsoft.com/en-us/library/ms176061.aspx

>Considerando che poi anche il path del filename del log e del
>db potrebbe essere in posizioni differenti
Occhio che l'account con il quale viene eseguito il servizio SQL Server oppure il gruppo SQLServerMSSQLUser$<nome server>$<nome istanza> deve avere le permission di Full Control sulla directory che conterrà i files del db.

Domanda: Come mai una applicazione ha la necessità di creare un database? Chi lo gestirà? Chi farà manutenzione? Chi farà i backup?

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

asso_78 Profilo | Newbie

>>avrei bisogno di creare un database sql server direttamente da
>>codice utilizzando vb net, come potrei fare?
>Utilizzare il comando CREATE DATABASE:
>http://msdn.microsoft.com/en-us/library/ms176061.aspx

Questo ok ma prer crearlo direttamente da vb net prima devo aprire una connessione e dato che il database non c'è..comunque da quello che ho notato uso "USE [master]" e da li riesco a creare il mio database


>>Considerando che poi anche il path del filename del log e del
>>db potrebbe essere in posizioni differenti
>Occhio che l'account con il quale viene eseguito il servizio SQL Server oppure il gruppo >SQLServerMSSQLUser$<nome server>$<nome istanza> deve avere le permission di Full Control sulla >directory che conterrà i files del db.
Per il path del log e del database come lo posso settare invece?

>Domanda: Come mai una applicazione ha la necessità di creare un database?
Il database lo farei creare al primo accesso al programma,
>Chi lo gestirà? Chi farà manutenzione? Chi farà i backup?
Il backup/ripristino lo farei direttamente da codice vb net, visto che so che è possibile, in modo tale che per l'utilizzatore del software sia tutto trasparente.
Aggiunta tabelle/colonne tutto da codice

:)
Ciao



asso

lbenaglia Profilo | Guru

>Questo ok ma prer crearlo direttamente da vb net prima devo aprire
>una connessione e dato che il database non c'è..comunque da quello
>che ho notato uso "USE [master]" e da li riesco a creare il mio
>database
Si esatto, ma questo presuppone che l'utente abbia le permission per accedere a quel db.
Fammi capire, vuoi distribuire una applcazione insieme a SQL Server Express?
In questo caso la procedura di setup chiederà all'utente se installare localmente SQL Server Express oppure accedere ad una istanza preesistente?

>Per il path del log e del database come lo posso settare invece?
Se non specifichi alcun percorso il master data file ed il transaction log verranno creati nella directory di default (per SQL Server 2008 C:\Program Files\Microsoft SQL Server\MSSQL10.<nome istanza>\MSSQL\DATA).

>Il database lo farei creare al primo accesso al programma,
Io lo farei creare dalla procedura di setup.

>Il backup/ripristino lo farei direttamente da codice vb net,
>visto che so che è possibile, in modo tale che per l'utilizzatore
>del software sia tutto trasparente.
Se il DBMS è installato localmente insieme all'applicazione non vedo altre alternative, mentre se è remoto esisterà sicuramente un DBA che applicherà le dovute policy.

>Aggiunta tabelle/colonne tutto da codice
Io lo farei creare dalla procedura di setup.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

asso_78 Profilo | Newbie

>Questo ok ma prer crearlo direttamente da vb net prima devo aprire
>una connessione e dato che il database non c'è..comunque da quello
>che ho notato uso "USE [master]" e da li riesco a creare il mio
>database
>Si esatto, ma questo presuppone che l'utente abbia le permission per accedere a quel db.
>Fammi capire, vuoi distribuire una applcazione insieme a SQL Server Express?
>In questo caso la procedura di setup chiederà all'utente se installare localmente SQL Server Express >oppure accedere ad una istanza preesistente?
L'applicazione deve essere distribuita insieme a SQLServer ed al momento è stand alone e non ci sono istanze già presenti.

>Per il path del log e del database come lo posso settare invece?
>Se non specifichi alcun percorso il master data file ed il transaction log verranno creati nella directory >di default (per SQL Server 2008 C:\Program Files\Microsoft SQL Server\MSSQL10.<nome >istanza>\MSSQL\DATA).
Se non imposto il filename o solamente il nome l'errore è questo:
Messaggio 5105, livello 16, stato 2, riga 3
Errore durante l'attivazione del file. È possibile che il nome del file fisico, 'nuovodb.mdf', non sia corretto. Diagnosticare e correggere eventuali altri errori, quindi ripetere l'operazione.

>Il database lo farei creare al primo accesso al programma,
>Io lo farei creare dalla procedura di setup.
Qualcuno lo deve fare oltre ad installare SQL Server, considera che la maggior parte degli utente sono "ignoranti" e non saprebbero come creare un database anche se avessere tutte le procedure già fatte.

>Il backup/ripristino lo farei direttamente da codice vb net,
>visto che so che è possibile, in modo tale che per l'utilizzatore
>del software sia tutto trasparente.
>Se il DBMS è installato localmente insieme all'applicazione non vedo altre alternative, mentre se è >remoto esisterà sicuramente un DBA che applicherà le dovute policy.
E' locale, ma supponendo che sia in remoto cioè con client/server, basta un programmino server che fa il backup.

>Aggiunta tabelle/colonne tutto da codice
>Io lo farei creare dalla procedura di setup.
Considera che però in un secondo momento la struttura del programma evolve quindi si rende necessaria aggiungere colonna / tabella e non può andare un dba ogni volta ad effettuare queste modifiche, quindi va fatto da codice.

asso
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5