2009-06-30 16 views

risposta

171

dbo è lo schema predefinito in SQL Server. Puoi creare i tuoi schemi per permetterti di gestire meglio lo spazio dei nomi degli oggetti.

+20

Come best practice, aggiungo sempre il "dbo". prefisso anche se non è necessario. Il più delle volte in SQL è bello essere espliciti. – SurroundedByFish

+2

@SurroundedByFish: Probabilmente non è una buona pratica, ma potrei sbagliarmi perché non sono un esperto SQL. http://stackoverflow.com/a/769639/602245 – Brett

+12

[questo articolo] (http://www.sqlteam.com/article/understanding-the-difference-between-owners-and-schemas-in-sql-server) da una [risposta diversa] (http://stackoverflow.com/a/10118197/39396) afferma che è in effetti una best practice: "Il codice non dovrebbe usare il nome completo, anche se c'è un leggero guadagno di prestazioni in tal modo ed è considerato una best practice. " –

69

Se si utilizza Sql Server Management Studio, è possibile creare il proprio schema sfogliando Database - Database - Sicurezza - Schemi.

Per creare uno utilizzando uno script è facile come (per esempio):

CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo] 

Si possono utilizzare per raggruppare logicamente le tabelle, ad esempio attraverso la creazione di uno Schama di informazioni "finanziario" e un altro per "Dati personali. Le tabelle sarebbero quindi visualizzare come:

Financial.BankAccounts Financial.Transactions Personal.Address

Invece di utilizzare lo schema predefinito di dbo.

+0

Sai se questo causa problemi quando utilizziamo Entity framework? – batmaci

+4

È possibile utilizzare gli schemi con Entity Framework, anche con il codice, se lo si desidera: '[Tabella (" Cliente ", Schema =" MySchema ")]' – Fenton

+0

Il 'AUTORIZZAZIONE [dbo]' concede le stesse autorizzazioni di dbo sul schema, o devo ancora concedere autorizzazioni agli utenti? –

Problemi correlati