스키마 생성, 변경 및 제거
Schema 개체는 데이터베이스 개체에 대한 소유권 컨텍스트를 나타냅니다. Database 개체의 Schemas 속성은 Schema 개체 모음을 나타냅니다.
예
제공된 코드 예제를 사용하려면 응용 프로그램을 만들 프로그래밍 환경, 프로그래밍 템플릿 및 프로그래밍 언어를 선택해야 합니다. 자세한 내용은 Visual Studio .NET에서 Visual Basic SMO 프로젝트 만들기 또는 Visual Studio .NET에서 Visual C# SMO 프로젝트 만들기를 참조하십시오.
Visual Basic에서 스키마 생성, 변경 및 제거
이 코드 예제는 스키마를 만들어 데이터베이스 개체에 할당하는 방법을 보여 줍니다. 그러면 프로그램이 사용자에게 권한을 부여하고 스키마에 새 테이블을 만듭니다.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2012database.
Dim db As Database
db = srv.Databases("AdventureWorks2012")
'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()
Visual C#에서 스키마 생성, 변경 및 제거
이 코드 예제는 스키마를 만들어 데이터베이스 개체에 할당하는 방법을 보여 줍니다. 그러면 프로그램이 사용자에게 권한을 부여하고 스키마에 새 테이블을 만듭니다.
{
//Connect to the local, default instance of SQL Server.
Server srv = new Server();
//Reference the AdventureWorks2012 database.
Database db = srv.Databases["AdventureWorks2012"];
//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();
}
PowerShell에서 스키마 생성, 변경 및 제거
이 코드 예제는 스키마를 만들어 데이터베이스 개체에 할당하는 방법을 보여 줍니다. 그러면 프로그램이 사용자에게 권한을 부여하고 스키마에 새 테이블을 만듭니다.
# Set the path context to the local, default instance of SQL Server and get a reference to AdventureWorks2012
CD \sql\localhost\default\databases
$db = get-item Adventureworks2012
# 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()