/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MSSQL: finde primærnøgle i given tabel
Fra : Morten Snedker


Dato : 18-08-04 11:13

Jeg vil lave en logtabel, som logger ændringer (UPDATE) på udvalgte
tabeller. Dette skal ske ved hjælp af en generel funktion, som jeg kan
bruge på flere triggere.

Log-tabellen skal indeholde:

Tabelnavn, PrimaryKey, User

Således ved jeg, hvilken bruger der har ændret en given post i en
given tabel.

Jeg harallerede fat i bruger. Men hvordan finder jeg dynamisk ud af,
hvad der er primærnøgle i en given tabel..og navnet på tabellen?

Alle råd & tips er velkomne!

mvh /Snedker
---
http://dbconsult.dk
Email: mortenatdbconsultdotdk

 
 
Jan Bachman (18-08-2004)
Kommentar
Fra : Jan Bachman


Dato : 18-08-04 16:24

>Alle råd & tips er velkomne!
Ambitiøst. Især når man tænker på at primær nøgle kan variere i
datatype og optræde som sammensat af flere felter.

Jeg anvender den simple løsning. Hver gang en post ændres i
hovedtabellen, så trigges en indsættelse af hele posten i logtabellen,
der strukturmæssigt er en kopi af hovedtabellen. Blot er der føjet et
timestamp på, der er udnævnt til primær nøgle, samt bruger-ID.

Er der flere tabeller der skal logges, så har jeg en separat logtabel
til hver.

/Jan

Peter Lykkegaard (18-08-2004)
Kommentar
Fra : Peter Lykkegaard


Dato : 18-08-04 18:25

"Jan Bachman" wrote

> Ambitiøst. Især når man tænker på at primær nøgle kan variere i
> datatype og optræde som sammensat af flere felter.
>
Tjohh, men hvis man har navnet på tabellen så skulle det være ret
trivielt at hente definitionen på primary key
Hvordan man umiddelbart henter navnet på tabellen i en trigger har jeg
ikke lige undersøgt/gennemskuet (endnu)

- Peter



Jan Bachman (19-08-2004)
Kommentar
Fra : Jan Bachman


Dato : 19-08-04 19:42

>Tjohh, men hvis man har navnet på tabellen så skulle det være ret
>trivielt at hente definitionen på primary key
>Hvordan man umiddelbart henter navnet på tabellen i en trigger har jeg
>ikke lige undersøgt/gennemskuet (endnu)
Det er nu mest det at gemme oplysningen igen, som jeg finder
ambitiøst. Med mindre at alle ens PK'er har samme datatype, så kan det
vel kun lade sig gøre i et tekstfelt. Hvis PK'en består af flere
felter, så skal værdierne f.eks. adskilles med "-" e.lign. skilletegn.

/Jan

Peter Lykkegaard (20-08-2004)
Kommentar
Fra : Peter Lykkegaard


Dato : 20-08-04 09:28

Jan Bachman wrote

> Det er nu mest det at gemme oplysningen igen, som jeg finder
> ambitiøst.

Ok

> Med mindre at alle ens PK'er har samme datatype,
> så kan det vel kun lade sig gøre i et tekstfelt.

Yep

> Hvis PK'en består af flere, felter, så skal værdierne
> f.eks. adskilles med "-" e.lign. skilletegn.

Jeg ville bruge semikolon eller komma alt efter hvilket sprog man kører med
Alternativt kan man have en ekstra tabel til det, hvis man en sammensat nøgle

Nogle systemer kører med en generisk rowid samt en alm PK

- Peter

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste