2016-12-05 2 views
4

表の名前を変更して使用する際に、非常に奇妙な問題があります。
私はテーブルを持っているがoldTableと呼ばれ、NEWTABLEに名前を変更します。表の名前を変更した後に更新するときにオブジェクト名が無効

SELECT * FROM database.dbo.newTable; 

しかし、私はこのよう更新を使用しよう:

UPDATE database.dbo.newTable SET foo = bar where id = 1; 

私は次のエラーが表示されます

Msg 208, Level 16, State 1, Procedure archive, Line 4 [Batch Start Line 0] 
Invalid object name 'oldTable'. 

私は正常に使用して、このテーブルの上にを選択 を使用することができます

名前oldTableはどこかに保存されていて、彼女に使用されています何らかの基準によってそれは、更新しようとすると、ssmsとraw php + sqlの両方で発生します。
誰でも知っていますか?

+6

テーブルにトリガーがありますか? –

+5

'database.dbo.newTable'テーブルにUpdateトリガが存在するかどうか確認してください。古いテーブル名を使用している引き金かもしれません。警告を常によく読んでください。注意:オブジェクト名の一部を変更すると、スクリプトやストアドプロシージャが破損する可能性があります。 –

+0

セッションを閉じて新しいものを開いてみてください。 – FDavidov

答えて

2

表の名前を変更しても、表に定義されているトリガー(またはそれ以外の参照)は更新されないため、トリガーやその他の依存関係を手動で更新して新しい名前を反映する必要があります。

関連する問題