Dizin oluşturulmuş görünüm tanımlanmış bir komut dosyasının parçası SMO nesne SQL Server 2005'te dizinlenmiş görünümün ilişkili komut dosyası oluşturulmuyor

Makale çevirileri Makale çevirileri
Makale numarası: 918480 - Bu makalenin geçerli olduğu ürünleri görün.
# Hata: 403696 (SQLBUDT)
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Dizin oluşturulmuş görünüm, dizinlenmiş görünümün tanımlanan kümelenmiş dizin komut dosyasının parçası olan Microsoft SQL Server 2005 ile ilgili SQL Server Management nesnesi (SMO) nesne komut zaman oluşturulmaz. Bu nedenle, kümelenmiş bir dizin, görünüm üzerinde ilk olarak belirtilmesini gerektiren bir nesne oluşturmak için oluşturulan komut çalıştırılamıyor.

Pratik Çözüm

Bu soruna geçici bir çözüm bulmak için nasıl SMO komut nesne, bağlı olarak aşağıdaki yöntemlerden birini kullanarak dizin oluşturulmuş görünüm için ilişkilidir.

Komut dosyası yöntemi SMO nesnesinin arayın.

  1. Bir ScriptingOptions nesnesi tanımlar.
  2. <a0>ScriptingOptions</a0> nesnesinin <a1>Dizinler</a1> özelliğinin değerini true olarak ayarlayın.
  3. Komut dosyası yöntemi SMO nesnesinin çağrılıyor yerine SMO nesnesinin Script(ScriptingOptions) yöntemini çağırın. Bunu yapmak için <a0></a0>, komut dosyası yöntemi ScriptingOptions nesne geçirir.
Örneğin şu kod örneğine benzer bir kod kullanabilirsiniz.

Microsoft Visual C#

Server srv = new Server(@".\MySQLServer");
Database db = srv.Databases["MyDB"];
View vw = db.Views["MyView"];

//Define the ScriptingOptions object.
ScriptingOptions sco = new ScriptingOptions();

//Set the value of the Indexes property.
sco.Indexes = true;

//Specify the values of the other members of the sco object.

System.Collections.Specialized.StringCollection script = null;

//Pass the ScriptingOptions object.
script = vw.Script(sco);

foreach (string str in script)
{
    Console.WriteLine(str);
    Console.WriteLine("go");
}

Microsoft Visual Basic .NET

Dim srv As Server = New Server(".\MySQLServer")
Dim db As Database = srv.Databases("MyDB")
Dim vw As View = db.Views("MyView")

'Define the ScriptingOptions object.
Dim sco As ScriptingOptions = New ScriptingOptions()

'Set the value of the Indexes property.
sco.Indexes = True

'Specify the values of the other members of the sco object.

'Pass the ScriptingOptions object.
Dim script As System.Collections.Specialized.StringCollection = vw.Script(sco)

Dim str As String
For Each str In script
    Console.WriteLine(str)
    Console.WriteLine("go")
Next str

Scripter nesne kullanın.

  1. Scripter nesnesinin Options.Indexes üyesi de?erini TRUE olarak ayarlayın.
  2. Komut dosyası oluşturmak için <a0></a0>, SMO nesne başvurusu Scripter</a0> nesnesinin <a1>kod</a1> yöntemine geçirin.
Örneğin şu kod örneğine benzer bir kod kullanabilirsiniz.

Visual C#

Server srv = new Server(@".\MySQLServer");
Database db = srv.Databases["MyDB"];
View vw = db.Views["MyView"];

Scripter scr = new Scripter();
scr.Server = srv;

//Set the value of the Options.Indexes member.
scr.Options.Indexes = true;

//Specify the value of the other members of the scr.Options property.

SqlSmoObject[] objs = new SqlSmoObject[1];
objs[0] = vw;

System.Collections.Specialized.StringCollection script = null;

//Pass the SMO object reference to the Script method.
script = scr.Script(objs);

foreach (string str in script)
{
    Console.WriteLine(str);
    Console.WriteLine("go");
}

Visual Basic .NET

Dim srv As Server = New Server(".\MySQLServer")
Dim db As Database = srv.Databases("MyDB")
Dim vw As View = db.Views("MyView")

Dim scr As Scripter = New Scripter()
scr.Server = srv

'Set the value of the Options.Indexes member.
scr.Options.Indexes = True

'Specify the value of the other members of the scr.Options object.

Dim objs As SqlSmoObject() = New SqlSmoObject() {vw}

'Pass the ScriptingOptions object.
Dim script As System.Collections.Specialized.StringCollection = scr.Script(objs)

Dim str As String
For Each str In script
    Console.WriteLine(str)
    Console.WriteLine("go")
Next str
NotSeçenekler özelliği Scripter nesnesinin ScriptingOptions bir nesne döndürür.

Aktarım nesnesini kullanın.

  1. Aktarım nesnesini Options.Indexes üyesinin değerini true olarak ayarlayın.
  2. Komut dosyası oluşturmak için <a0></a0>, Aktarım nesnesinin ScriptTransfer yöntemini kullanın.
Örneğin şu kod örneğine benzer bir kod kullanabilirsiniz.

Visual C#

Server srv = new Server(@".\MySQLServer");
Database db = srv.Databases["MyDB"];

Transfer trans = new Transfer(db);

//Set the value of the Options.Indexes member.
trans.Options.Indexes = true;

//Specify the value of the other members of the trans.Options property.

System.Collections.Specialized.StringCollection script = null;

//Use the ScriptTransfer method of the Transfer object to generate the script.
script = trans.ScriptTransfer();

foreach (string str in script)
{
    Console.WriteLine(str);
    Console.WriteLine("go");
}

Visual Basic .NET

Dim srv As Server = New Server(".\MySQLServer")
Dim db As Database = srv.Databases("MyDB")

Dim trans As Transfer = New Transfer(db)

'Set the value of the Options.Indexes member.
trans.Options.Indexes = True

'Specify the value of the other members of the trans.Options property.

'Use the ScriptTransfer method of the Transfer object to generate the script.
Dim script As System.Collections.Specialized.StringCollection = trans.ScriptTransfer()

Dim str As String
For Each str In script
    Console.WriteLine(str)
    Console.WriteLine("go")
Next str
Not Bir Aktarım nesnesini <a1>Seçenekler</a1> özelliğini, bir ScriptingOptions nesnesi döndürür.

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır.

Referanslar

ScriptingOptions sınıfı hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.scriptingoptions.aspx

Özellikler

Makale numarası: 918480 - Last Review: 17 Mayıs 2006 Çarşamba - Gözden geçirme: 1.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
Anahtar Kelimeler: 
kbmt kbexpertiseadvanced kbtshoot kbprb KB918480 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:918480

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com