Část skriptu, který je definován v indexovaném zobrazení není generován při skriptu SMO objekt, který souvisí s indexovaného zobrazení serveru SQL Server 2005

Překlady článku Překlady článku
ID článku: 918480 - Produkty, které se vztahují k tomuto článku.
Bug #: 403696 (SQLBUDT)
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Pokud není generován skriptu SQL Server Management Object (SMO) objekt, který souvisí s indexovaného zobrazení v roce 2005 Microsoft SQL Server, část skriptu seskupený index, který je definován na indexované zobrazení. Proto nelze spustit generovaný skript pro vytvoření objektů, které vyžadují seskupený index mají být specifikovány nejprve na zobrazení.

Jak potíže obejít

Chcete-li tento problém vyřešit, použijte jednu z následujících metod podle toho, jak skript SMO objektu souvisí s indexovaného zobrazení.

Volání metody skript objektu SMO

  1. Definovat objekt ScriptingOptions.
  2. Nastavte hodnotu vlastnosti indexyScriptingOptions objektu na hodnotu true.
  3. Namísto volání metody skript SMO objektu, volejte metodu Script(ScriptingOptions) objektu SMO. Chcete-li to provést, předejte objekt ScriptingOptions k metodě skript.
Například pomocí kódu, která se podobá následující příklad kódu.

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

Pomocí objektu Scripter

  1. Nastavte hodnotu člena Options.IndexesScripter objektu na hodnotu true.
  2. Generování skriptu, předat odkaz objekt SMO na skript metodu Scripter objektu.
Například pomocí kódu, která se podobá následující příklad kódu.

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
Poznámka: Vlastnost Možnosti objektu Scripter vrací objekt ScriptingOptions.

Pomocí objektu Transfer

  1. Nastavte hodnotu Options.Indexes člena Transfer objektu na hodnotu true.
  2. Generování skriptu, použijte metodu ScriptTransfer objektu Transfer.
Například pomocí kódu, která se podobá následující příklad kódu.

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
Poznámka: Vlastnost Možnostipřenosu objektu vrací objekt ScriptingOptions.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části „ platí.

Odkazy

Další informace o třídě ScriptingOptions na webu Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.scriptingoptions.aspx

Vlastnosti

ID článku: 918480 - Poslední aktualizace: 17. května 2006 - Revize: 1.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
Klíčová slova: 
kbmt kbexpertiseadvanced kbtshoot kbprb KB918480 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:918480

Dejte nám zpětnou vazbu

 

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