J'essaie d'insérer une date lorsqu'un utilisateur décide de désactiver ou d'activer un ID utilisateur. J'essaie d'utiliser un SP pour déclencher cela, mais apparemment, c'est plus difficile que je ne le pensais.
Je peux faire un
SELECT GETDATE()
pour obtenir la date, mais existe-t-il un moyen d'insérer ces informations à partir de GETDATE et de les mettre dans une colonne que je veux?
Deux façons. Premièrement, si vous ajoutez une ligne à chaque fois qu'une activation [de] se produit, vous pouvez définir la colonne par défaut sur GETDATE () et ne pas définir la valeur dans l'insertion. Autrement,
UPDATE TableName SET [ColumnName] = GETDATE() WHERE UserId = @userId
Pour insérer une nouvelle ligne dans une table donnée (tblTable):
INSERT INTO tblTable (DateColumn) VALUES (GETDATE())
Pour mettre à jour une ligne existante:
UPDATE tblTable SET DateColumn = GETDATE()
WHERE ID = RequiredUpdateID
Notez que lorsque INSERT
ing une nouvelle ligne, vous devrez observer toutes les contraintes qui sont sur la table - probablement le NOT NULL
contrainte - vous devrez peut-être fournir des valeurs pour d'autres colonnes, par exemple ...
INSERT INTO tblTable (Name, Type, DateColumn) VALUES ('John', 7, GETDATE())
UPDATE Table
SET DateColumn=GETDATE()
WHERE UserID=@UserID
Si vous insérez dans une table et que vous aurez toujours besoin de mettre la date actuelle, je recommanderais de définir GETDATE()
comme valeur par défaut pour cette colonne, et n'autorisez pas les valeurs NULL
Si vous cherchez à stocker les informations dans une table, vous devez utiliser une instruction INSERT ou UPDATE. Il semble que vous ayez besoin d'une instruction UPDATE:
UPDATE SomeTable
SET SomeDateField = GETDATE()
WHERE SomeID = @SomeID
Vous pouvez utiliser getdate () par défaut comme ceci la réponse acceptée de la question SO montre . De cette façon, vous ne fournissez pas la date, vous insérez simplement le reste et cette date est la valeur par défaut pour la colonne.
Vous pouvez également le fournir dans la liste des valeurs de votre insert et le faire manuellement si vous le souhaitez.