2012-02-22 20 views
-4
SET ANSI_NULLS ON 
SET QUOTED_IDENTIFIER ON 

GO 

ALTER PROCEDURE [dbo].[Prc_InsertUpdate] (@boxone VARCHAR(200), 
              @boxtwo VARCHAR(200), 
              @boxthree VARCHAR(200)) 
AS 
    DECLARE @num AS INT 

    SELECT @num = MAX(NUMBER) + 1 
    FROM updatepage 

    INSERT INTO [TestDB].[dbo].[updatepage] 
       ([number], 
       [box1], 
       [box2], 
       [box3]) 
    VALUES  (@num, 
       @boxone, 
       @boxtwo, 
       @boxthree) 

に、私は、この手順を作成するが、このエラーエラーはSQL Server 2005のストアドプロシージャ

メッセージ208、レベル16、状態6、手順Prc_InsertUpdate、9行
無効なオブジェクト名「DBOを持っています.Prc_InsertUpdate '。

+4

ああ、 'MAX(番号)を選択+ 1 'は、*本当に*恐ろしいです。シリアライズ可能なトランザクションで選択とそれ以降の使用をラップしたとしても、それでも問題はありません。 –

+0

@Damien_The_Unbeliever:もし私が.....できれば、私はあなたにgazillionを+1するだろう。 –

答えて

2

あなたはALTERです - 存在しないストアドプロシージャです。代わりにCREATE procedure [dbo].[Prc_InsertUpdate]を使用してください。

はまた、なぜnumberidentity列ではありませんか?現在のアプローチは、並行処理の条件では非効率的で安全ではありませんか?

+0

または彼はSSMS –

+0

@AlexKで間違ったデータベースを使っている。 - 真実ですが、質問のテキストは「この手続きを作成しています」と言っています –

関連する問題