1

T-SQL データベースの更新スクリプト内に次の論理テストがあります。

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

...これは私にこのエラーを与えます:

列名 'DeviceId' が無効です。

OK、列 Trackers.DeviceId は実際にはもう存在しませんが、ステートメントの最初の部分はこの検証をブロックするはずですが、間違っていますか?

前もって感謝します!

4

1 に答える 1