La parte de una secuencia de comandos que se define en una vista indizada no se genera cuando secuencias de comandos un objeto SMO relacionado con la vista indizada en SQL Server 2005

Seleccione idioma Seleccione idioma
Id. de artículo: 918480 - Ver los productos a los que se aplica este artículo
Nº de error: 403696 (SQLBUDT)
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando no se genera comandos un objeto de objetos de administración de SQL Server (SMO) que está relacionado con una vista indizada en Microsoft SQL Server 2005, la parte de la secuencia de comandos del índice agrupado que se define en la vista indizada. Por lo tanto, no puede ejecutar la secuencia de comandos generado para crear objetos que requieren un índice agrupado que se especifique en la vista por primera vez.

Solución

Para solucionar este problema, utilice uno de los métodos siguientes, dependiendo de cómo el SMO script objeto que está relacionado con una vista indizada.

Llame al método secuencias de comandos del objeto SMO

  1. Defina un objeto ScriptingOptions .
  2. Establece el valor de la propiedad Indexes del objeto ScriptingOptions en True.
  3. En lugar de llamar al método secuencias de comandos del objeto SMO, llame al método Script(ScriptingOptions) del objeto SMO. Para ello, pase el objeto ScriptingOptions al método de secuencia de comandos del sistema.
Por ejemplo, utilizar código similar en el ejemplo de código siguiente se.

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

Utilice el objeto scripter

  1. Establezca el valor del miembro del objeto Scripter Options.Indexes en True.
  2. Para generar la secuencia de comandos, pase la referencia de objeto SMO para el método de secuencia de comandos del objeto scripter .
Por ejemplo, utilizar código similar en el ejemplo de código siguiente se.

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
Nota La propiedad Opciones de un objeto scripter devuelve un objeto ScriptingOptions .

Utilice el objeto de transferencia

  1. Establezca el valor del miembro Options.Indexes del objeto de transferencia en true .
  2. Para generar la secuencia de comandos, utilice el método ScriptTransfer del objeto de transferencia .
Por ejemplo, utilizar código similar en el ejemplo de código siguiente se.

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
Nota La propiedad Opciones de un objeto de transferencia devuelve un objeto ScriptingOptions .

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".

Referencias

Para obtener más información acerca de la clase ScriptingOptions , visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.scriptingoptions.aspx

Propiedades

Id. de artículo: 918480 - Última revisión: miércoles, 17 de mayo de 2006 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
Palabras clave: 
kbmt kbexpertiseadvanced kbtshoot kbprb KB918480 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 918480

Enviar comentarios

 

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