Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

La partie d'un script qui est définie sur une vue indexée n'est générée lorsque vous un script pour un objet SMO qui est lié à la vue indexée dans SQL Server 2005

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 918480
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Bogue #: 403696 (SQLBUDT)
Symptômes
Lorsque vous script un objet SQL Server Management Object (SMO) qui est lié à une vue indexée dans la partie le script de l'index cluster est défini sur la vue indexée Microsoft SQL Server 2005 n'est pas généré. Par conséquent, vous ne peut pas exécuter le script généré pour créer des objets qui nécessitent un index organisé en clusters pour être spécifié dans l'affichage tout d'abord.
Contournement
Pour contourner ce problème, appliquez une des méthodes suivantes, selon le mode script le SMO objet qui est lié à une vue indexée.

Appeler la méthode script de l'objet SMO

  1. Définir un objet ScriptingOptions .
  2. Définissez la valeur de la propriété Index de l'objet ScriptingOptions sur True.
  3. Plutôt que d'appeler la méthode de script de l'objet SMO, appelez la méthode Script(ScriptingOptions) de l'objet SMO. Pour cela, transmettez l'objet ScriptingOptions à la méthode script .
Par exemple, utiliser un code semblable à l'exemple de code suivant.

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 StringFor Each str In script    Console.WriteLine(str)    Console.WriteLine("go")Next str

Utilisez l'objet scripter

  1. Définir la valeur du membre de l'objet scripter Options.Indexes sur True.
  2. Pour générer le script, transmettez la référence d'objet SMO à la méthode script de l'objet scripter .
Par exemple, utiliser un code semblable à l'exemple de code suivant.

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 StringFor Each str In script    Console.WriteLine(str)    Console.WriteLine("go")Next str
note La propriété options d'un objet scripter renvoie un objet ScriptingOptions .

Utilisez l'objet transfert

  1. Définir la valeur du membre de l'objet transfert Options.Indexes sur true .
  2. Pour générer le script, utilisez la méthode ScriptTransfer de l'objet de transfert .
Par exemple, utiliser un code semblable à l'exemple de code suivant.

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 StringFor Each str In script    Console.WriteLine(str)    Console.WriteLine("go")Next str
note La propriété options d'un objet transfert renvoie un objet ScriptingOptions .
Statut
Microsoft a confirmé que c'est un problème dans les produits Microsoft répertoriés dans la section « S'applique à ».
Références
Pour plus d'informations sur la classe ScriptingOptions , reportez-vous au site de Web MSDN (Microsoft Developer Network) suivant :

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 918480 - Dernière mise à jour : 12/09/2015 05:37:26 - Révision : 1.1

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition

  • kbnosurvey kbarchive kbmt kbexpertiseadvanced kbtshoot kbprb KB918480 KbMtfr
Commentaires