2012-03-06 7 views
4
CREATE PROCEDURE Customer 
(FName varchar(20),LName varchar(20),Birthdate datetime,Email Nvarchar(20),Houseno varchar(20),Street varchar(20),City varchar(20),Country varchar(20),Pincode int,Phno varchar(13),Mobile varchar(13),CustomerId varchar(20),Password varchar(20),ConfirmPassword varchar(20)) 

AS 

Begin 

    Insert into Registration values 
    (@FName,@LName,@Birthdate,@Email,@Houseno,@Street,@City,@Country, 
    @Pincode,@Phno, @Mobile,@CustomerId,@Password,@ConfirmPassword) 

End 

При сохранении ошибки приходит какОбъявить скалярную переменную хранимой процедуры

Fname должен объявить скалярную переменную

Что не так с этим кодом?

ответ

3

Вам не хватает знака "@" для объявлений параметров.

create procedure Customer 
@FName varchar(20),@LName varchar(20) ..... 
0

Переменные, которые вы пытаетесь вставить, не были объявлены правильно. Вы должны префикс всех объявлений с помощью @.

create procedure Customer 
(@FName varchar(20),@LName varchar(20),@Birthdate datetime,@Email Nvarchar(20),@Houseno varchar(20),@Street varchar(20),@City varchar(20),@Country varchar(20),@Pincode int,@Phno varchar(13),@Mobile varchar(13),@CustomerId varchar(20),@Password varchar(20),@ConfirmPassword varchar(20)) 
AS 
Begin 
Insert into Registration values (@FName,@LName,@Birthdate,@Email,@Houseno,@Street,@City,@Country,@Pincode,@Phno, 
@Mobile,@CustomerId,@Password,@ConfirmPassword) 
End 
0

Вы должны определить свою локальную переменную как @local_variable см MSDN

@local_variable Является ли имя переменной. Имена переменных должны начинаться с знака at (@). Локальные имена переменных должны соответствовать правилам для

С помощью @ он сообщает sqlserver, что это локальная переменная. Также вы определяете @ во время вставки.

Как указано выше, просто добавьте @ перед каждым именем параметра.

Смежные вопросы