現在、1つのクエリで2つの関連するテーブルのデータを更新しようとしています。データの冗長性のためにベスト・プラクティスではないかもしれませんが、私はアプリケーション内で変更されたデータをチェックするのを避けたいと思っています。結合されたテーブルを一緒に更新すると、複数の部分の識別子をバインドできませんでした。
これらは、使用中のテーブルです:
Process (Id, Name, Description)
FavoriteProcess (Id, Process_Id, Position, CreatedTime)
あなたはすべてのFavoriteProcess
エンティティがProcess
に関連しているとProcess
が複数のFavoriteProcess
エンティティに表示されることがわかるように。
私はFavoriteProcess
エンティティのPosition
財産と同様に関連Process
のDescription
プロパティを更新することが可能なツールを書いています。この問題のために、私はエラーを発行している次のストアドプロシージャを書いた:5関連の私は、この問題を探してみた
Msg 4104, Level 16, State 1, Procedure UpdateFavoriteProcess, Line 13 The multi-part identifier "p.Description" could not be bound.
が、どれも:クエリは、このエラーを発行している
CREATE PROCEDURE UpdateFavoriteProcess
-- parameters for the stored procedure
@Id int,
@ProcessDescription varchar(256),
@Position int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- The update query
UPDATE fp
SET p.Description = @ProcessDescription, -- this line is issuing the error
fp.Position = @Position
FROM FavoriteProcess AS fp
INNER JOIN Process AS p ON fp.Process_Id = p.Id
WHERE fp.Id = @Id
END
GO
SOの質問は私の問題を解決できる解決策を提供しました!私は...
- を試してみました...括弧を入れて... []
- を持つすべての表と列を囲む()結合文
が、私の周りにどれも任意の可能な方法で試行は成功しました。だから私はこの問題で私を助けることができる誰かに本当に感謝しています!あなたはNot Bound
エラーを取得する理由です
UPDATE fp
あなたカント書き込み
SET p.Description
でUPDATEを起動すると
ああ、私はそれがUPDATEクエリでから、テーブル2を持つことが可能だということを、いくつかの質問に読んで確信していました。私は、結合されたテーブルのデータを照会するだけで、それを更新することはできません。 – Vinzenz