Saber si una columna es la clave

Hola.
Tengo una tabla agenda en SQL Server que tiene un campo clave identity "ID"
CREATE TABLE [dbo].[Agenda] (
 [id] [int] IDENTITY (1, 1) NOT NULL ,
 [Nombre] [char] (20) COLLATE Modern_Spanish_CI_AS NULL ,
 [Ape1] [char] (10) COLLATE Modern_Spanish_CI_AS NULL ,
 [Ape2] [char] (10) COLLATE Modern_Spanish_CI_AS NULL ,
 [Direccion] [char] (30) COLLATE Modern_Spanish_CI_AS NULL ,
 [Poblacion] [char] (20) COLLATE Modern_Spanish_CI_AS NULL ,
 [Telefono] [decimal](18, 0) NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Agenda] ADD
constraint [pk_agenda] primary key clustered
(
     [id]
) ON [PRIMARY]
GO
Desde VB .Net obtengo dicha tabla en un Datatable y quiero detectar si alguna columna es clave.
Lo intento hacer de esta manera:
Private miDataSet As New DataSet
Private miDataTable As New DataTable
Private miDA As SqlDataAdapter
miDA = SqlDataAdapter("select * from Agenda", cnMiconexion.ConnectionString)
miDataTable = miDataSet.Tables.Add("Agenda")
miDA.Fill(miDataTable)
Miro las constraints y me dice ¡¡¡¡¡ que no hay ninguna!!!!!
Dim cs As Constraint
For Each cs In miDataTable.Constraints
If TypeOf cs Is UniqueConstraint Then
   'NUNCA ENTRA AQUI
End If
Next cs
¿Cómo puedo saber si una columna es clave en el dataset (o datatable)?
Gracias de antemano

1 respuesta

Respuesta
1
La información de la tabla de sql no se pasa al dataset, refiriéndome a la información de tipos de datos y constraints etc que se encuentren creados en la base de datos de SQL.
Eso debes averiguarlo de otra forma.
Di ejecutas sp_help 'nombretabla' te da información de la tabla allí hay un segmento de datos que te permiten saber si la columna es o no clave.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas