sql >> Database teknologi >  >> RDS >> Sqlserver

Kan du have en fremmednøgle på en visning af en sammenkædet servertabel i SQLServer 2k5?

Fremmednøgler kan ikke forbindes til ikke-lokale objekter - de skal referere til lokale tabeller. Du får fejlen "maksimalt antal præfikser", fordi du refererer til tabellen med et 4-delt navn (LinkedServer.Database.Schema.Object), og et lokalt objekt vil kun have et 3-delt navn.

Andre løsninger :

  1. Repliker dataene fra kilden (visningens placering) til den samme server som den tabel, du forsøger at tilføje nøglen til. Du kan gøre dette hver time, dagligt eller hvad som helst, afhængigt af hvor ofte kildedataene ændres.
  2. Tilføj en trigger på kildetabellen for at skubbe eventuelle ændringer til din lokale kopi. Dette ville i det væsentlige være det samme som #1, men med øjeblikkelig population af ændringer
  3. Tilføj en INSTEAD OF"-udløser til din tabel, der manuelt kontrollerer begrænsningen af ​​fremmednøgle ved at vælge fra den linkede server og sammenligne den værdi, du forsøger at INSERT/OPDATERE. Hvis den ikke stemmer overens, kan du afvise ændringen .


  1. PostgreSQL:valg af rækker, der forekommer på en bestemt dag i ugen, i en bestemt tidszone

  2. pg nodejs-pakke resulterer i 'ugyldig inputsyntaks for type json'

  3. Hvordan bruger man en case-sætning i skalært værdisat funktion i SQL?

  4. Fejl ved oprettelse af unaccent-udvidelse på PostgreSQL