Tengo una tabla existente llamada Persion
. En esta tabla tengo 5 columnas:
- persionId
- Pname
- PMid
- Pdescription
- Pamt
Cuando creé esta tabla, configuré PersionId
y Pname
como clave principal .
Ahora quiero incluir una columna más en la clave primaria: PMID. ¿Cómo puedo escribir una ALTER
declaración para hacer esto? (Ya tengo 1000 registros en la tabla)
sql
sql-server
sql-server-2008
constraints
primary-key
arrendajo
fuente
fuente
personId
en su tabla. Esto a su vez significa que si se une desde una tabla de tipo transacción (muchos) a esta tabla solo en esta clave, obtendrá registros duplicados, lo que conducirá a un 'doble recuento' de registros de transacciones.Respuestas:
soltar la restricción y recrearla
editar:
puede encontrar el nombre de la restricción utilizando la consulta a continuación:
fuente
Creo que algo como esto debería funcionar
fuente
es una mejor solución porque tienes control sobre el nombre de la clave_primaria.
Es mejor que solo usar
que genera nombres aleatorios y puede causar problemas al crear scripts o comparar bases de datos
fuente
Si agrega restricción de clave primaria
por ejemplo:
fuente
Ya hay una clave principal en su tabla. No puede simplemente agregar la clave primaria, de lo contrario causará un error. Porque hay una clave primaria para la tabla sql.
Primero, debe soltar su antigua clave principal.
MySQL:
SQL Server / Oracle / MS Access:
Segundo, Agregar clave primaria.
MySQL / SQL Server / Oracle / MS Access:
o el mejor de abajo
Esto puede establecer el nombre de restricción por desarrollador. Es más fácil mantener la mesa.
Me confundo un poco cuando busqué todas las respuestas. Así que investigo algún documento para encontrar cada detalle. Espero que esta respuesta pueda ayudar a otros principiantes de SQL.
Referencia: https://www.w3schools.com/sql/sql_primarykey.asp
fuente
La restricción PRIMARY KEY identifica de forma exclusiva cada registro en una tabla de base de datos. Las claves primarias deben contener valores ÚNICOS y la columna no puede contener valores NULL.
fuente
Nigromancia
En caso de que alguien tenga un esquema tan bueno para trabajar como yo ...
Aquí está cómo hacerlo correctamente:
En este ejemplo, el nombre de la tabla es dbo.T_SYS_Language_Forms, y el nombre de la columna es LANG_UID
fuente
Por favor intente esto
fuente
Intenta usar este código:
fuente
fuente