sql >> Base de Datos >  >> RDS >> Sqlserver

¿Puede tener una clave externa en una vista de una tabla de servidor vinculado en SQLServer 2k5?

Las claves externas no se pueden conectar a objetos no locales; tienen que hacer referencia a tablas locales. Obtiene el error "número máximo de prefijos" porque está haciendo referencia a la tabla con un nombre de 4 partes (LinkedServer.Database.Schema.Object), y un objeto local solo tendría un nombre de 3 partes.

Otras soluciones :

  1. Reproduzca los datos desde el origen (la ubicación de la vista) al mismo servidor que la tabla en la que intenta agregar la clave. Puede hacerlo cada hora, cada día o lo que sea, dependiendo de la frecuencia con la que cambien los datos de origen.
  2. Agregue un activador en la tabla de origen para enviar cualquier cambio a su copia local. Esto sería esencialmente lo mismo que el n. ° 1, pero con una población inmediata de cambios
  3. Agregue un disparador INSTEAD OF" a su tabla que verifique manualmente la restricción de clave externa seleccionando del servidor vinculado y comparando el valor que está tratando de INSERTAR/ACTUALIZAR. Si no coincide, puede rechazar el cambio .