9

同じテーブル データから同じテーブル データを更新しようとしていました。

私のSPは次のとおりです。

UPDATE T1
SET T1.Name = T2.Name
   , T1.Age = T2.Age
   , T1.Subject = T2.Subject
FROM Student T1
   , Student T2
WHERE T1.StudentID = @OldID
   AND T2.StudentID = @NewID

このクエリを実行しているとき、エラーはありません。しかし、更新は機能していません。

[ここでは、T1.StudentID = T2.StudentID のように比較する一般的な列の値はありません]

4

3 に答える 3

5

これを試して:

UPDATE t1
SET t1.name = t2.name, t1.age = t2.age, t1.subject = t2.subject
FROM student t1
INNER JOIN
student t2
ON t1.StudentID = @oldID
AND t2.StudentID = @NewID

完全な例はここにあります

于 2012-10-11T14:48:32.213 に答える
2

これを試してください。間違ったエイリアスを使用しています。

UPDATE T1 SET Name = T2.Name
, Age = T2.Age
, Subject = T2.Subject
 FROM Student T1
, Student T2
WHERE T1.StudentID = @OldID
AND T2.StudentID = @NewID
于 2012-10-27T11:13:45.420 に答える
0

ストアドプロシージャを介してそれを実行し、いくつかの変数を宣言し、これらの変数に新しい値をロードしてから、テーブルを更新してみてください。

次のようになります。

CREATE PROCEDURE dbo.StoredProcedure2

    @OldID int,
    @NewID int

AS

declare @Name text, @Age int, @Subject text

begin

select @Name = T1.Name, @Age = T1.Age, @Subject= T1.Subject
from Student T1
Where T1.StudentID = @OldID

end

begin

UPDATE T1 SET T1.Name = @Name, T1.Age = @Age, T1.Subject = @Subject
FROM Student T1
WHERE T1.StudentID = @OldID

end
    RETURN
于 2012-10-15T19:46:07.290 に答える