2010-12-14 26 views
0

J'ai besoin d'aide pour savoir comment charger automatiquement la table pour les valeurs de Utilisateur créé, date de création, utilisateur modifié et date de modification,Comment écrire une requête pour un utilisateur créé, Date de création, Utilisateur modifié, Date de modification pour une table

une fois toutes les données entre dans la table, nous devrions avoir l'utilisateur créé et valeur de la colonne date de création à fixer mais l'utilisateur modifié et date de modification devrait changer

+1

Quelle table, chargée dans où, dans quelle langue? Avez-vous une structure de table? – Paddy

Répondre

0

Admiting structure de votre table ressemble à ceci -dont oublier DEFAULT GETDATE() -:

YourTable 
--------- 
CreatedUser 
CreatedDate DEFAULT GETDATE() 
ModifierUser 
ModifierDate 

Sur l'insertion vous déclenchez une fonction qui mettra à jour ModifiedUser et ModifiedDate à getDate()

0

Pour CreatedBy et CreateTime vous pouvez utiliser des colonnes de valeurs par défaut:

CreatedAt DATETIME DEFAULT GETDATE(), 
CreatedBy VARCHAR(100) DEFAULT USER 

Pour UpdatedAt, vous devez créer un déclencheur qui définit les valeurs:

CREATE TRIGGER [t_Table_upd] ON YourTable AFTER UPDATE AS 
set nocount on 
UPDATE YourTable 
set 
    YourTable.[Modified] = getdate(), 
    YourTable.[ModifiedBy] = USER, 
    YourTable.[Version] = YourTable.[Version] + 1 
FROM 
    DELETED d 
WHERE 
    YourTable.ID = d.ID 
+0

mais si j'utilise l'authentification sql, comment prendra-t-il le nom d'utilisateur Windows au lieu du nom d'authentification sql – Sravanthi

+0

Lorsque vous utilisez l'authentification sql, le serveur sql ne peut pas deviner qui vous êtes en termes de nom d'utilisateur Windows. Lorsque vous vous connectez à l'aide de l'authentification Windows, NAME renvoie le nom d'utilisateur Windows authentifié: http://msdn.microsoft.com/en-us/library/ms186738.aspx – Jan