Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Properti adalah nilai yang menyimpan informasi deskriptif tentang objek. Misalnya, opsi konfigurasi Microsoft SQL Server diwakili oleh Configuration properti objek. Properti dapat diakses baik secara langsung maupun tidak langsung dengan menggunakan koleksi properti. Mengakses properti secara langsung menggunakan sintaks berikut:
objInstance.PropertyName
Nilai properti dapat dimodifikasi atau diambil tergantung pada apakah properti memiliki akses baca/tulis atau akses baca-saja. Anda juga perlu mengatur properti tertentu sebelum objek dapat dibuat. Untuk informasi selengkapnya, lihat referensi SMO untuk objek tertentu.
Nota
Kumpulan objek anak muncul sebagai properti objek. Misalnya, Tables koleksi adalah properti objek Server . Untuk informasi selengkapnya, lihat Menggunakan Koleksi.
Properti objek adalah anggota koleksi Properti. Koleksi Properti dapat digunakan untuk melakukan iterasi melalui setiap properti objek.
Terkadang properti tidak tersedia karena alasan berikut:
Versi server tidak mendukung properti , seperti jika Anda mencoba mengakses properti yang mewakili fitur SQL Server baru pada versi SQL Server yang lebih lama.
Server tidak menyediakan data untuk properti, seperti jika Anda mencoba mengakses properti yang mewakili komponen SQL Server yang tidak diinstal.
Anda dapat menangani keadaan ini dengan menangkap UnknownPropertyExceptionPropertyCannotBeRetrievedException dan pengecualian SMO.
Mengatur Bidang Inisialisasi Default
SMO melakukan pengoptimalan saat mengambil objek. Pengoptimalan meminimalkan jumlah properti yang dimuat dengan menskalakan secara otomatis antara status berikut:
Sebagian dimuat. Ketika objek pertama kali dirujuk, objek memiliki properti minimum yang tersedia (seperti Nama dan Skema).
Sepenuhnya dimuat. Ketika properti apa pun dirujuk, properti yang tersisa yang cepat dimuat, diinisialisasi dan tersedia.
Properti yang menggunakan banyak memori. Properti yang tersisa tidak tersedia menggunakan banyak memori dan memiliki Expensive nilai properti true (seperti DataSpaceUsage). Properti ini dimuat hanya jika direferensikan secara khusus.
Jika aplikasi Anda mengambil properti tambahan, selain yang disediakan dalam status dimuat sebagian, aplikasi mengirimkan kueri untuk mengambil properti tambahan ini dan meningkatkan skala ke status yang dimuat sepenuhnya. Ini dapat menyebabkan lalu lintas yang tidak perlu antara klien dan server. Lebih banyak pengoptimalan dapat dicapai dengan memanggil SetDefaultInitFields metode . Metode ini SetDefaultInitFields memungkinkan spesifikasi properti yang dimuat saat objek diinisialisasi.
Metode SetDefaultInitFields ini mengatur perilaku pemuatan properti untuk sisa aplikasi atau sampai diatur ulang. Anda dapat menyimpan perilaku asli dengan menggunakan GetDefaultInitFields metode dan memulihkannya sesuai kebutuhan.
Contoh
Untuk menggunakan contoh kode apa pun yang disediakan, Anda harus memilih lingkungan pemrograman, templat pemrograman, dan bahasa pemrograman untuk membuat aplikasi Anda. Untuk informasi selengkapnya, lihat "Cara: Membuat Proyek SMO Visual Basic di Visual Studio .NET" atau "Cara: Membuat Proyek Visual C# SMO di Visual Studio .NET" di SQL Server Books Online.
Mendapatkan dan Mengatur Properti di Visual Basic
Contoh kode ini menunjukkan cara mendapatkan Edition properti Information objek dan cara mengatur SqlExecutionModes properti ConnectionContext properti ke ExecuteSql anggota jenis SqlExecutionModes enumerasi.
Mendapatkan dan Mengatur Properti di Visual C#
Contoh kode ini menunjukkan cara mendapatkan Edition properti Information objek dan cara mengatur SqlExecutionModes properti ConnectionContext properti ke ExecuteSql anggota jenis SqlExecutionModes enumerasi.
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Get a property.
Console.WriteLine(srv.Information.Version);
//Set a property.
srv.ConnectionContext.SqlExecutionModes = SqlExecutionModes.ExecuteSql;
}
Mengatur Berbagai Properti Sebelum Objek Dibuat di Visual Basic
Contoh kode ini menunjukkan cara langsung mengatur AnsiNullsStatus properti Table objek, dan cara membuat dan menambahkan kolom sebelum Anda membuat Table objek.
Mengatur Berbagai Properti Sebelum Objek Dibuat di Visual C#
Contoh kode ini menunjukkan cara langsung mengatur AnsiNullsStatus properti Table objek, dan cara membuat dan menambahkan kolom sebelum Anda membuat Table objek.
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Create a new table in the AdventureWorks2012 database.
Database db;
db = srv.Databases("AdventureWorks2012");
Table tb;
//Specify the parent database, table schema, and the table name in the constructor.
tb = new Table(db, "Test_Table", "HumanResources");
//Add columns because the table requires columns before it can be created.
Column c1;
//Specify the parent table, the column name, and data type in the constructor.
c1 = new Column(tb, "ID", DataType.Int);
tb.Columns.Add(c1);
c1.Nullable = false;
c1.Identity = true;
c1.IdentityIncrement = 1;
c1.IdentitySeed = 0;
Column c2;
c2 = new Column(tb, "Name", DataType.NVarChar(100));
c2.Nullable = false;
tb.Columns.Add(c2);
tb.AnsiNullsStatus = true;
//Create the table on the instance of SQL Server.
tb.Create();
}
Iterasi Melalui Semua Properti Objek di Visual Basic
Contoh kode ini berulang melalui Properties kumpulan StoredProcedure objek dan menampilkannya di layar Output Visual Studio.
Dalam contoh, Property objek telah dimasukkan ke dalam tanda kurung persegi karena juga merupakan kata kunci Visual Basic.
Iterasi Melalui Semua Properti Objek di Visual C#
Contoh kode ini berulang melalui Properties kumpulan StoredProcedure objek dan menampilkannya di layar Output Visual Studio.
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Set properties on the uspGetEmployeedManagers stored procedure on the AdventureWorks2012 database.
Database db;
db = srv.Databases("AdventureWorks2012");
StoredProcedure sp;
sp = db.StoredProcedures("uspGetEmployeeManagers");
sp.AnsiNullsStatus = false;
sp.QuotedIdentifierStatus = false;
//Iterate through the properties of the stored procedure and display.
Property p;
foreach ( p in sp.Properties) {
Console.WriteLine(p.Name + p.Value);
}
}
Mengatur Bidang Inisialisasi Default di Visual Basic
Contoh kode ini menunjukkan cara meminimalkan jumlah properti objek yang diinisialisasi dalam program SMO. Anda harus menyertakan using System.Collections.Specializedpernyataan ; untuk menggunakan StringCollection objek .
SQL Server Profiler dapat digunakan untuk membandingkan pernyataan angka yang dikirim ke instans SQL Server dengan pengoptimalan ini.
Mengatur Bidang Inisialisasi Default di Visual C#
Contoh kode ini menunjukkan cara meminimalkan jumlah properti objek yang diinisialisasi dalam program SMO. Anda harus menyertakan using System.Collections.Specializedpernyataan ; untuk menggunakan StringCollection objek .
SQL Server Profiler dapat digunakan untuk membandingkan pernyataan angka yang dikirim ke instans SQL Server dengan pengoptimalan ini.
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Reference the AdventureWorks2012 database.
Database db;
db = srv.Databases("AdventureWorks2012");
//Assign the Table object type to a System.Type object variable.
Table tb;
Type typ;
tb = new Table();
typ = tb.GetType;
//Assign the current default initialization fields for the Table object type to a
//StringCollection object variable.
StringCollection sc;
sc = srv.GetDefaultInitFields(typ);
//Set the default initialization fields for the Table object type to the CreateDate property.
srv.SetDefaultInitFields(typ, "CreateDate");
//Retrieve the Schema, Name, and CreateDate properties for every table in AdventureWorks2012.
//Note that the improvement in performance can be viewed in SQL Server Profiler.
foreach ( tb in db.Tables) {
Console.WriteLine(tb.Schema + "." + tb.Name + " " + tb.CreateDate);
}
//Set the default initialization fields for the Table object type back to the original settings.
srv.SetDefaultInitFields(typ, sc);
}