0

誰かがこのスクリプトを修正するのを手伝ってもらえますか?

次のエラーが発生します:メッセージ4104、レベル16、状態1、行1マルチパート識別子"#Temp3.EmpID"をバインドできませんでした。

エラーの原因は次のとおりです。-Keyshop.EmployeeTableへの更新UPDATEEmployeeTableSET Status ='False' WHERE#Temp3.EmpID = EmployeeTable.EmpID

スクリプトはかなり自明ですが、さらに情報を提供する必要がある場合はお知らせください。ありがとうございました

-- Update into Keyshop.EmployeeTable
UPDATE EmployeeTable SET Status = 'False' WHERE #Temp3.EmpID = EmployeeTable.EmpID
4

2 に答える 2

1

UPDATEこれは、句またはオプションFROM句にないテーブルを参照しているため、有効な更新ステートメントではありません。

UPDATE EmployeeTable
 SET Status = 'False' 
WHERE #Temp3.EmpID = EmployeeTable.EmpID

を使用してそれを行うにはいくつかの方法がありますINおそらく最も理解しやすいです

UPDATE EmployeeTable
 SET Status = 'False' 
WHERE EmployeeTable.EmpID IN (SELECT EmpID  FROM #Temp3)
于 2012-08-03T17:23:54.940 に答える
0

これらの人を切り替えます。これの代わりに:

UPDATE EmployeeTable SET Status = 'False' WHERE #Temp3.EmpID = EmployeeTable.EmpID

これを持っています

UPDATE EmployeeTable SET Status = 'False' WHERE EmployeeTable.EmpID in (SELECT EmpID  FROM #Temp3)

編集:#Temp3.EmpIDがテーブルであり、変数ではないことを見逃しました。

于 2012-08-03T17:22:57.097 に答える