sql >> Databasteknik >  >> RDS >> Sqlserver

Kan du ha en främmande nyckel på en vy av en länkad servertabell i SQLServer 2k5?

Främmande nycklar kan inte kopplas till icke-lokala objekt - de måste referera till lokala tabeller. Du får felet "maximalt antal prefix" eftersom du refererar till tabellen med ett 4-delat namn (LinkedServer.Database.Schema.Object), och ett lokalt objekt skulle bara ha ett 3-delat namn.

Andra lösningar:

  1. Replicera data från källan (platsen för vyn) till samma server som tabellen du försöker lägga till nyckeln på. Du kan göra detta varje timme, dagligen eller vad som helst, beroende på hur ofta källdata ändras.
  2. Lägg till en utlösare i källtabellen för att skicka eventuella ändringar i din lokala kopia. Detta skulle i huvudsak vara detsamma som #1, men med omedelbar population av förändringar
  3. Lägg till en INSTEAD OF"-utlösare i din tabell som manuellt kontrollerar den främmande nyckeln genom att välja från den länkade servern och jämföra värdet du försöker INFOGA/UPPDATERA. Om det inte matchar kan du avvisa ändringen .


  1. Varför utför PostgreSQL sekventiell skanning på indexerad kolumn?

  2. Oracle-sekvensen för ett primärnyckelfält hämtar inte det för närvarande infogade värdet i Hibernate

  3. Behöver en mysql-fråga

  4. Anslut till två databaser