Ayuda sobre SQLDMO.Indices

01/11/2005 - 22:25 por Diego M R®mero | Informe spam
Hola

Estoy haciendo una función para generar un Script, a partir de una tabla
existente, pero no se como
listar las columnas incluidas en el Indice.
Dim mIndKey as String
mIndKey =""
For Each mIdce In oTbl.Indexes
If mIdce.Type = SQLDMOIndex_Default Then
mIndKey = mIndKey & " CREATE NONCLUSTERED INDEX " & mIdce.Name & " ON "
& oTbl.Name
mIndKey = mIndKey & " (" ' no se como colocar las columnas ? & ")"
End If
Next mIdce

'mIdce.IndexedColumns, dice que es de solo escritura

Agradezco su colaboración


Diego

Preguntas similare

Leer las respuestas

#1 Isaias
02/11/2005 - 02:27 | Informe spam
En el BOL, consulta INFORMATION_SCHEMA

Saludos
Saludos
IIslas


"Diego M R®mero" escribió:

Hola

Estoy haciendo una función para generar un Script, a partir de una tabla
existente, pero no se como
listar las columnas incluidas en el Indice.
Dim mIndKey as String
mIndKey =""
For Each mIdce In oTbl.Indexes
If mIdce.Type = SQLDMOIndex_Default Then
mIndKey = mIndKey & " CREATE NONCLUSTERED INDEX " & mIdce.Name & " ON "
& oTbl.Name
mIndKey = mIndKey & " (" ' no se como colocar las columnas ? & ")"
End If
Next mIdce

'mIdce.IndexedColumns, dice que es de solo escritura

Agradezco su colaboración


Diego



Respuesta Responder a este mensaje
#2 Eladio Rincón
02/11/2005 - 17:13 | Informe spam
Hola,

el objeto index tiene los siguientes arrays que te pueden servir:
idx.ListIndexedColumns()
idx.IndexedColumns()

sin embargo, en idx tienes el método script con el que puedes generar
automáticamente el script; mira este ejemplo:

Try

Dim oServer As New SQLDMO.SQLServer2
Dim oDatabase As New SQLDMO.Database
Dim tbl As New SQLDMO.Table
Dim idx As New SQLDMO.Index
Dim s As String = ""

oServer.LoginSecure = True
oServer.Connect("DELL-ERH")

oDatabase = oServer.Databases.Item("Northwind")

For Each tbl In oDatabase.Tables
For Each idx In tbl.Indexes
s += idx.Script()
Next
Console.WriteLine("Tabla: " + tbl.Name + "; scrip: " + s)
Next

Catch ex As Exception
Console.WriteLine(ex.ToString)
End Try


Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"


"Diego M R®mero" wrote in message
news:%
Hola

Estoy haciendo una función para generar un Script, a partir de una tabla
existente, pero no se como
listar las columnas incluidas en el Indice.
Dim mIndKey as String
mIndKey =""
For Each mIdce In oTbl.Indexes
If mIdce.Type = SQLDMOIndex_Default Then
mIndKey = mIndKey & " CREATE NONCLUSTERED INDEX " & mIdce.Name & " ON "
& oTbl.Name
mIndKey = mIndKey & " (" ' no se como colocar las columnas ? & ")"
End If
Next mIdce

'mIdce.IndexedColumns, dice que es de solo escritura

Agradezco su colaboración


Diego


Respuesta Responder a este mensaje
#3 Diego M R®mero
02/11/2005 - 18:05 | Informe spam
IndexedColumns, no me sirve porque es de solo escritura

"Eladio Rincón" escribió en el mensaje
news:#el$
Hola,

el objeto index tiene los siguientes arrays que te pueden servir:
idx.ListIndexedColumns()
idx.IndexedColumns()

sin embargo, en idx tienes el método script con el que puedes generar
automáticamente el script; mira este ejemplo:

Try

Dim oServer As New SQLDMO.SQLServer2
Dim oDatabase As New SQLDMO.Database
Dim tbl As New SQLDMO.Table
Dim idx As New SQLDMO.Index
Dim s As String = ""

oServer.LoginSecure = True
oServer.Connect("DELL-ERH")

oDatabase = oServer.Databases.Item("Northwind")

For Each tbl In oDatabase.Tables
For Each idx In tbl.Indexes
s += idx.Script()
Next
Console.WriteLine("Tabla: " + tbl.Name + "; scrip: " + s)
Next

Catch ex As Exception
Console.WriteLine(ex.ToString)
End Try


Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced


education
and solutions for the entire Microsoft database platform"


"Diego M R®mero" wrote in message
news:%
> Hola
>
> Estoy haciendo una función para generar un Script, a partir de una


tabla
> existente, pero no se como
> listar las columnas incluidas en el Indice.
> Dim mIndKey as String
> mIndKey =""
> For Each mIdce In oTbl.Indexes
> If mIdce.Type = SQLDMOIndex_Default Then
> mIndKey = mIndKey & " CREATE NONCLUSTERED INDEX " & mIdce.Name & " ON


"
> & oTbl.Name
> mIndKey = mIndKey & " (" ' no se como colocar las columnas ? &


")"
> End If
> Next mIdce
>
> 'mIdce.IndexedColumns, dice que es de solo escritura
>
> Agradezco su colaboración
>
>
> Diego
>
>


Respuesta Responder a este mensaje
#4 Eladio Rincón
02/11/2005 - 18:30 | Informe spam
te sirven los métodos?
idx.GenerateSQL
idx.GenerateCreationSQL
idx.Script


Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"


"Diego M R®mero" wrote in message
news:
IndexedColumns, no me sirve porque es de solo escritura

"Eladio Rincón" escribió en el mensaje
news:#el$
Hola,

el objeto index tiene los siguientes arrays que te pueden servir:
idx.ListIndexedColumns()
idx.IndexedColumns()

sin embargo, en idx tienes el método script con el que puedes generar
automáticamente el script; mira este ejemplo:

Try

Dim oServer As New SQLDMO.SQLServer2
Dim oDatabase As New SQLDMO.Database
Dim tbl As New SQLDMO.Table
Dim idx As New SQLDMO.Index
Dim s As String = ""

oServer.LoginSecure = True
oServer.Connect("DELL-ERH")

oDatabase = oServer.Databases.Item("Northwind")

For Each tbl In oDatabase.Tables
For Each idx In tbl.Indexes
s += idx.Script()
Next
Console.WriteLine("Tabla: " + tbl.Name + "; scrip: " + s)
Next

Catch ex As Exception
Console.WriteLine(ex.ToString)
End Try


Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced


education
and solutions for the entire Microsoft database platform"


"Diego M R®mero" wrote in message
news:%
> Hola
>
> Estoy haciendo una función para generar un Script, a partir de una


tabla
> existente, pero no se como
> listar las columnas incluidas en el Indice.
> Dim mIndKey as String
> mIndKey =""
> For Each mIdce In oTbl.Indexes
> If mIdce.Type = SQLDMOIndex_Default Then
> mIndKey = mIndKey & " CREATE NONCLUSTERED INDEX " & mIdce.Name & "
> ON


"
> & oTbl.Name
> mIndKey = mIndKey & " (" ' no se como colocar las columnas ? &


")"
> End If
> Next mIdce
>
> 'mIdce.IndexedColumns, dice que es de solo escritura
>
> Agradezco su colaboración
>
>
> Diego
>
>






Respuesta Responder a este mensaje
#5 Diego M R®mero
03/11/2005 - 17:33 | Informe spam
Ok, Gracias

"Eladio Rincón" escribió en el mensaje
news:#
te sirven los métodos?
idx.GenerateSQL
idx.GenerateCreationSQL
idx.Script


Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced


education
and solutions for the entire Microsoft database platform"


"Diego M R®mero" wrote in message
news:
> IndexedColumns, no me sirve porque es de solo escritura
>
> "Eladio Rincón" escribió en el mensaje
> news:#el$
>> Hola,
>>
>> el objeto index tiene los siguientes arrays que te pueden servir:
>> idx.ListIndexedColumns()
>> idx.IndexedColumns()
>>
>> sin embargo, en idx tienes el método script con el que puedes generar
>> automáticamente el script; mira este ejemplo:
>>
>> Try
>>
>> Dim oServer As New SQLDMO.SQLServer2
>> Dim oDatabase As New SQLDMO.Database
>> Dim tbl As New SQLDMO.Table
>> Dim idx As New SQLDMO.Index
>> Dim s As String = ""
>>
>> oServer.LoginSecure = True
>> oServer.Connect("DELL-ERH")
>>
>> oDatabase = oServer.Databases.Item("Northwind")
>>
>> For Each tbl In oDatabase.Tables
>> For Each idx In tbl.Indexes
>> s += idx.Script()
>> Next
>> Console.WriteLine("Tabla: " + tbl.Name + "; scrip: " + s)
>> Next
>>
>> Catch ex As Exception
>> Console.WriteLine(ex.ToString)
>> End Try
>>
>>
>> Eladio Rincón
>>
>> SQL Server MVP, Mentor
>> Solid Quality Learning
>> http://www.SolidQualityLearning.com
>>
>> "Solid Quality Learning is the trusted global provider of advanced
> education
>> and solutions for the entire Microsoft database platform"
>>
>>
>> "Diego M R®mero" wrote in message
>> news:%
>> > Hola
>> >
>> > Estoy haciendo una función para generar un Script, a partir de una
> tabla
>> > existente, pero no se como
>> > listar las columnas incluidas en el Indice.
>> > Dim mIndKey as String
>> > mIndKey =""
>> > For Each mIdce In oTbl.Indexes
>> > If mIdce.Type = SQLDMOIndex_Default Then
>> > mIndKey = mIndKey & " CREATE NONCLUSTERED INDEX " & mIdce.Name & "
>> > ON
> "
>> > & oTbl.Name
>> > mIndKey = mIndKey & " (" ' no se como colocar las columnas ? &
> ")"
>> > End If
>> > Next mIdce
>> >
>> > 'mIdce.IndexedColumns, dice que es de solo escritura
>> >
>> > Agradezco su colaboración
>> >
>> >
>> > Diego
>> >
>> >
>>
>>
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida