Condividi tramite


Creazione, modifica e rimozione di schemi

L'oggetto Schema rappresenta un contesto di proprietà per un oggetto di database. La proprietà Schemas dell'oggetto Database rappresenta una raccolta di oggetti Schema.

Esempio

Per utilizzare qualsiasi esempio di codice fornito, è necessario scegliere l'ambiente, il modello e il linguaggio di programmazione per la creazione dell'applicazione. Per ulteriori informazioni, vedere Procedura: Creazione di un progetto Visual Basic SMO in Visual Studio .NET o Procedura: Creazione di un progetto Visual C# SMO in Visual Studio .NET.

Creazione, modifica e rimozione di uno schema in Visual Basic

In questo esempio di codice viene illustrato come creare uno schema e assegnarlo a un oggetto di database. Il programma concede quindi l'autorizzazione a un utente e successivamente crea una nuova tabella nello schema.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2008R2database.
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")
'Define a Schema object variable by supplying the parent database and name arguments in the constructor.
Dim sch As Schema
sch = New Schema(db, "MySchema1")
sch.Owner = "dbo"
'Create the schema on the instance of SQL Server.
sch.Create()
'Define an ObjectPermissionSet that contains the Update and Select object permissions.
Dim obperset As ObjectPermissionSet
obperset = New ObjectPermissionSet()
obperset.Add(ObjectPermission.Select)
obperset.Add(ObjectPermission.Update)
'Grant the set of permissions on the schema to the guest account.
sch.Grant(obperset, "guest")
'Define a Table object variable by supplying the parent database, name and schema arguments in the constructor.
Dim tb As Table
tb = New Table(db, "MyTable", "MySchema1")
Dim mycol As Column
mycol = New Column(tb, "Date", DataType.DateTime)
tb.Columns.Add(mycol)
tb.Create()
'Modify the owner of the schema and run the Alter method to make the change on the instance of SQL Server.
sch.Owner = "guest"
sch.Alter()
'Run the Drop method for the table and the schema to remove them.
tb.Drop()
sch.Drop()

Creazione, modifica e rimozione di uno schema in Visual C#

In questo esempio di codice viene illustrato come creare uno schema e assegnarlo a un oggetto di database. Il programma concede quindi l'autorizzazione a un utente e successivamente crea una nuova tabella nello schema.

{
         //Connect to the local, default instance of SQL Server. 
         Server srv = new Server(); 
        //Reference the AdventureWorks2008R2 database. 
        Database db = srv.Databases["AdventureWorks2008R2"]; 
        //Define a Schema object variable by supplying the parent database and name arguments in the constructor. 
        Schema sch = new Schema(db, "MySchema1"); 
        sch.Owner = "dbo"; 

        //Create the schema on the instance of SQL Server. 
        sch.Create(); 

        //Define an ObjectPermissionSet that contains the Update and Select object permissions. 
        ObjectPermissionSet obperset = new ObjectPermissionSet(); 
        obperset.Add(ObjectPermission.Select); 
        obperset.Add(ObjectPermission.Update); 

        //Grant the set of permissions on the schema to the guest account. 
        sch.Grant(obperset, "guest"); 

        //Define a Table object variable by supplying the parent database, name and schema arguments in the constructor. 
        Table tb = new Table(db, "MyTable", "MySchema1"); 
       Column mycol = new Column(tb, "Date", DataType.DateTime); 
        tb.Columns.Add(mycol); 
        tb.Create(); 

        //Modify the owner of the schema and run the Alter method to make the change on the instance of SQL Server. 
        sch.Owner = "guest"; 
        sch.Alter(); 

        //Run the Drop method for the table and the schema to remove them. 
        tb.Drop(); 
        sch.Drop(); 
}

Creazione, modifica e rimozione di uno schema in PowerShell

In questo esempio di codice viene illustrato come creare uno schema e assegnarlo a un oggetto di database. Il programma concede quindi l'autorizzazione a un utente e successivamente crea una nuova tabella nello schema.

# Set the path context to the local, default instance of SQL Server and get a reference to AdventureWorks2008R2
CD \sql\localhost\default\databases
$db = get-item Adventureworks2008R2

# Define a schema object variable by supplying the parent database and name arguments in the constructor. 
$sch  = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Schema `
-argumentlist $db, "MySchema1"

# Set schema owner
$sch.Owner = "dbo" 

# Create the schema on the instance of SQL Server. 
$sch.Create()

# Define an ObjectPermissionSet that contains the Update and Select object permissions. 
$obperset  = New-Object -TypeName Microsoft.SqlServer.Management.SMO.ObjectPermissionSet
$obperset.Add([Microsoft.SqlServer.Management.SMO.ObjectPermission]::Select)
$obperset.Add([Microsoft.SqlServer.Management.SMO.ObjectPermission]::Update)

# Grant the set of permissions on the schema to the guest account. 
$sch.Grant($obperset, "guest")

#Create a SMO Table with one column and add it to the database
$tb = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Table -argumentlist $db, "MyTable", "MySchema1"
$Type = [Microsoft.SqlServer.Management.SMO.DataType]::DateTime
$mycol =  New-Object -TypeName Microsoft.SqlServer.Management.SMO.Column -argumentlist $tb,"Date", $Type
$tb.Columns.Add($mycol)
$tb.Create() 

# Modify the owner of the schema and run the Alter method to make the change on the instance of SQL Server. 
$sch.Owner = "guest"
$sch.Alter()

# Run the Drop method for the table and the schema to remove them. 
$tb.Drop()
$sch.Drop()