je le test logique suivant dans mon script de mise à jour de la base de données T-SQL:validation dans instruction logique
IF ((COL_LENGTH('dbo.Trackers','DeviceId') IS NOT NULL) AND (COL_LENGTH('dbo.Devices','UserId') IS NOT NULL))
UPDATE [dbo].[Devices]
SET [UserId] = (SELECT TOP 1 t.UserId FROM Trackers t WHERE t.DeviceId = [dbo].[Devices].DeviceId);
GO
... qui me donne cette erreur:
Invalid column name 'DeviceId'.
OK, la colonne Trackers .DeviceId n'existe plus vraiment, mais la première partie de ma déclaration est censée bloquer cette validation, ou ai-je tort?
Merci d'avance!
Je pense que vous avez raison. Peut-être devrais-je lancer un 'sp_executesql' dans mon IF. – Cesar