Borrar clave primaria en Access con Vb.net

Tengo generada una tabla directamente desde Access con una clave primaria en un campo. Deseo cambiar esa clave primaria por otra que contiene dos campos desde código Vb.net.

Tengo el codigo siguiente:

Dim cn2 as oldb.OleDbConnection

Dim comando as oldb.OledbCommand

Dim sql as String

cn2 = New OleDbConnection("Provider=Microsoft.Jet.oledb.4.0;Data Source=" & Application.StartupPath & "\empresas\" & Empresa & "\" & Año & "\ventas.mdb;Jet oledb:database password=1111;")

cn2.open()

sql="Drop index id_linea on lineas_tickets "

comando = New OleDbCommand(sql, cn2)
comando.ExecuteNonQuery()

sql = "alter table lineas_tickets add unique (id_linea, ticket)"
comando = New OleDbCommand(sql, cn2)
Comando. ExecuteNonQuery()
Cn2. Close()

No me da ningun error, de hecho si la hago otra vez, si me da error diciendo que ya no existe el indice en la tabla, pero entro en la base de datos en Access y sigue existiendo la clave principal en el campo inicial y no en los dos. Y aunque no ponga la segunda instruccion de generar otro indice me sigue apareciendo la llave en el campo inicial.

1 Respuesta

Respuesta

Veo la instrucción para borrar el índice, pero no para crear la llave primaria.

Estas creando un campo compuesto único que es diferente a una llave primaria.

Si esta borrando el índice, no borras la llave primaria en ningún momento por eso es que cuando entras la sigues viendo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas