Je suis encore nouveau aux choses de DB et celui-ci me donne un problème.Mise à jour de SQL dans la table avec le cas
Je normalise ma table et j'en ai créé une nouvelle où [Status] est maintenant FK.
j'ai pu insérer toutes les valeurs de la table d'origine dans la nouvelle, moins le [État]
j'essaie maintenant d'insérer le [Status] à l'aide d'un cas de sélection.
Tentative 1:
USE [GESS]
GO
DECLARE @int_status int;
SELECT @int_status =
(CASE
WHEN [Status] = 'Alumni' THEN 5
WHEN [Status] = 'Faculty' THEN 6
WHEN [Status] = 'Friend' THEN 7
WHEN [Status] = 'Student' THEN 8
ELSE 9
END)
FROM [dbo].[GESSContact]
INSERT INTO dbo.GESSContact2 ([Status]) VALUES (@int_status)
GO
Mais il dit seulement 1 ligne est affectée.
Tentative 2:
USE [GESS]
GO
INSERT INTO [dbo].[GESSContact2]([Status])
Select (
CASE
WHEN o.[Status] = 'Alumni' THEN 5
WHEN o.[Status] = 'Faculty' THEN 6
WHEN o.[Status] = 'Friend' THEN 7
WHEN o.[Status] = 'Student' THEN 8
ELSE 9
END) As [Status]
From [dbo].[GESSContact] o
GO
Celui-ci dit que toutes les lignes sont touchées, mais le [État] est toujours réglé sur null quand je vérifie.
Merci pour toute aide/suggestions
MISE À JOUR:
Alors que les gens me aider, la réponse que j'ai marqué comme une réponse m'a fait comprendre que je devais être faire un UPDATE
au lieu de INSERT
. Voici mon SQL que j'ai utilisé pour faire ce travail.
USE [GESS]
GO
UPDATE [dbo].[GESSContact2]
SET [dbo].[GESSContact2].[Status] =
CASE
WHEN o.[Status] = 'Alumni' THEN 5
WHEN o.[Status] = 'Faculty' THEN 6
WHEN o.[Status] = 'Friend' THEN 7
WHEN o.[Status] = 'Student' THEN 8
ELSE 9
END
FROM [dbo].[GESSContact2] JOIN [dbo].[GESSContact] o
ON [dbo].[GESSContact2].id = o.id
Merci à tous ceux qui ont aidé!
Dans le tableau dbo.GESSContact2 ([Status]) sont Là? Puis-je obtenir la définition de la table? Et avez-vous les données comme 5,6,7,8,9 dans la table de statut comme il est utilisé comme une clé étrangère à la table dbo.GESSContact2? – Rakib
J'ai ajouté la table def au message original. Dans la table d'état, (5,6,7,8,9) sont des clés primaires. Dans la table d'origine, ce sont des valeurs de chaîne – Christian4423
J'ai besoin de cette définition [dbo]. [GESSContact2].J'ai juste besoin du nombre de colonnes et de noms de colonnes – Rakib