Esportazioni access->sql server (domande)

mercoledì 29 marzo 2006 - 09.07

Amodio Profilo | Expert

salve a tutti
avrei qualche domanda da fare riguardo l'esportazione di tabelle access su sql server
ho riunito 3 domande in quanto tutte e 3 riguardano l'esportazione access->sql server,quindi ho pensato di creare un'unico thread

1) ogni volta che esporto una tabella da acess verso sql server, e poi per controllare i dati uso access. noto che la tabella è stata rinominata "dbo." nome tabella...mentre le tabelle create direttamente da sql server non hanno questo prefisso "dbo"
quindi
a cosa server?,è importante?, prestazioni o qualcosa?

2)in sql server 2005 quando importo tabelle da access almeno mi rimangono le chiavi e gli indici? lo spero in quanto con sql server 2000 era il mio peggiore incubo

3)ho creato un progetto adp con access per collegarmi a sql server..ma appena cerco di creare una query... posso fare solo select...ma le update ,delete ,insert..xke nn le posso fare? e se c'è un modo come?

lbenaglia Profilo | Guru

>1) ogni volta che esporto una tabella da acess verso sql server,
>e poi per controllare i dati uso access. noto che la tabella
>è stata rinominata "dbo." nome tabella...mentre le tabelle create
>direttamente da sql server non hanno questo prefisso "dbo"
>quindi
>a cosa server?,è importante?, prestazioni o qualcosa?

Ciao Amodio,

dbo è l'utente db owner, ovvero un utente con le permission "divine" a livello di database (è in grado di creare oggetti, leggere, inserire e modificare dati, ecc...).
Lo standard ANSI prevede il concetto di schema: uno schema è equivalente ad un namespace in XML o in un liguaggio OO come ad esempio C#, ovvero ad una "scatola" che contiene altri oggetti (tabelle, stored procedures, viste...).
SQL Server 2000 non implementava il concetto di schema, ma utilizzava l'owner (il proprietario) di un oggetto per "raggruppare" tutti i suoi oggetti.
SQL Server 2005 introduce finlmente il concetto di schema come previsto dallo tandard ANSI che slega completamente i concetti di owner e di schema.
Per mantenere la compatibilità con le versioni precedenti di default tutti gli oggetti definiti senza specificare uno schema apparterranno allo SCHEMA dbo.
E' sempre opportuno specificare uno schema quando si fa riferimento ad un oggetto sopratttuto perché ad uno schema possono essere associate delle permission che verranno automaticamente assegnate a tutti gli oggetti appartenenti allo schema stesso.
In questo modo è possibile configurare la sicurezza in modo molto più comodo rispetto alle versioni precedenti, mantenendo una suddivisione logica degli oggetti, ad esempio raggruppandoli per funzione.

>2)in sql server 2005 quando importo tabelle da access almeno
>mi rimangono le chiavi e gli indici? lo spero in quanto con sql
>server 2000 era il mio peggiore incubo

Se non ricordo male, l'Upsizing Wizard è in grado di trasferire anche gli indici e PK.
Leggi attentamente gli articoli raccolti in questo post:
http://groups.google.it/group/microsoft.public.it.sql/msg/07873e6761974516

>3)ho creato un progetto adp con access per collegarmi a sql server..ma
>appena cerco di creare una query... posso fare solo select...ma
>le update ,delete ,insert..xke nn le posso fare? e se c'è un
>modo come?

Sicuramente sulla tabella SQL Server non è stata definita una Primary Key o un indice unique.

Ciao!

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

Amodio Profilo | Expert

mah...ti diro'....
ho controllato e il database ha sia chiavi che indici
ma nn mi permette di eseguire upldate o delete ...da questo errore:

"Questo tipo di istruzione SQL non può essere utilizzato in una vista o una funzione.
È possibile usare soltanto un'istruzione SELECT."

E ANCHE SE creo un'altro dipo di query..anzi per dire il vero ..a tutti i tipoi di query nn me lo permette

lbenaglia Profilo | Guru

>mah...ti diro'....
>ho controllato e il database ha sia chiavi che indici
>ma nn mi permette di eseguire upldate o delete ...da questo errore:
>
>"Questo tipo di istruzione SQL non può essere utilizzato in una
>vista o una funzione.
>È possibile usare soltanto un'istruzione SELECT."
>
>E ANCHE SE creo un'altro dipo di query..anzi per dire il vero
>..a tutti i tipoi di query nn me lo permette

Ciao Amodio,

Il messaggio d'errore mi sembra chiarissimo: viste e UDF table-valued accettano solo comandi di SELECT (e nelle UDF multistatement table-valued anche operazioni DML *esclusivamente* su variabili di tipo TABLE.

Se vuoi eseguire operazioni DML racchiudi il tuo codice in una stored procedure.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5