SQL Server 2005で、必要なすべてのテーブルに一意のIDがないDBを使用しています。回避策は、一意のIDが適用された類似のテーブルの別のセットを作成することです。
ここで、結合などの目的で、新しいIDの参照をテーブルの初期セットに戻したいと思います。(余談ですが、これらのテーブルは定期的に切り捨てられ、再入力されるため、回避策があります)。
つまり、Table2のIDを取得し、Table1のレコードに適切に関連付けたいと考えています。
私にとって難しいのは、Table1のレコードは、3つのフィールドを考慮した場合にのみ一意になるということです。
Table1にIDフィールドを追加してから、次のことを試しました。
UPDATE dbo.Table1
SET dbo.Table1.ID = dbo.Table2.ID
WHERE dbo.Table1.foo = dbo.Table2.foo
And dbo.Table1.bar = dbo.Table2.bar
And dbo.Table1.buzz = dbo.Table2.buzz
ただし、次のようなエラーが発生します。
Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "dbo.Table2.foo" could not be bound.
Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "dbo.Table2.bar" could not be bound.
Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "dbo.Table2.buzz" could not be bound.
何かご意見は?
ありがとう。