2017-07-10 11 views
-1

SQL ServerでSPを更新しました。 SPは正常に作成されますが、実行時にエラーが表示されます。以下はSPと実行です。それで私を助けてください。ストアドプロシージャの更新

alter procedure updaterecored(@studentsrid int, 
@sfirstname varchar(50), @slastname varchar(20), @semail varchar(50)) 
as 
begin 
update tbl_Students set Firstname = @sfirstname, [email protected], [email protected] 
where [email protected] 
end 

、実行

exec updaterecored(4, 'dipika', 'Sharma', '[email protected]') 
+1

エラーは何ですか? – fauxmosapien

+0

エラーを通知せずに「私はエラーが発生しました」と投稿しないでください。 –

答えて

1

プロシージャを実行するときは、中括弧を使用しないでください。これを使用する

exec updaterecored 4,'dipika','Sharma','[email protected]' 
+0

これは私のために働いた。あなたが問題を解決した場合は、回答を受け入れたものとしてマークしてください。 – Bha15

+0

@ Bha15言及している間にエラーが何かを引用していたならば、他の2人が異なる原因について推測する答えを書いている時間を無駄にしていないことにも注意してください。 –

+0

そのためには、私は正しいシンボルをマークするだけです。それは...ですか? – Bha15

0

のためにあなたの更新ステートメント内の変数は、あなたが通過するものと一致してはいけません。 @SEmailと@semailは異なる値です。あなたのSPでの更新ステートメントが

update tbl_Students set Firstname = @sfirstname, [email protected] ,[email protected] 
where [email protected] 

編集に変更します。また、ファーストネームは資本を持っていますが、姓がないあなたのカラム名を確認し 、それはあなたのテーブルでそのようなものですか?

+2

OPが特に大文字小文字を区別する照合を選択しない限り、カラム名は大文字と小文字を区別しないので、そのようなことはありません。 –

+0

Trueですが、ストアドプロシージャと実際には動作していないと判断して、照合順序が大文字と小文字を区別して設定されていると推測します。 – dbajtr

+0

大文字と小文字が区別されないので、それは問題ではないと私は思う。 – Bha15

0

ここで@semailと@SEmailは2つの異なる変数です。私は下のコードを変更しました。今はうまくいくはずです。

alter procedure updaterecored(@studentsrid int, 
    @sfirstname varchar(50),@SLastname varchar(20),@SEmail varchar(50)) 
    as 
    begin 
    update tbl_Students set Firstname = @sfirstname, [email protected],[email protected] 
    where [email protected] 
    end 


-- exec updaterecored 4,'dipika','Sharma','[email protected]' 
+0

'@TemP int = 12を宣言します。 @teMpを選択します。 'あなたはエラーが出ますか? :) –

+0

ストアドプロシージャの行@PrabhatG –

+0

ただそれを別々に実行してください。ポイントは、明示的に指定されていないかぎり、変数は大文字と小文字が区別されません。 –

関連する問題