请教存储过程的问题?
我写的存储过程,发现执行时取不到参数,不知为什么
CREATE PROCEDURE UserWant_Update
@UserID int,
@Sex varchar (4),
@AgeRange varchar (20),
@StudyLevel varchar (15),
@Salary varchar (20),
@Photo varchar (10),
@IsWed varchar (4),
@Height varchar (20),
@Province varchar (10),
@City varchar (10)
--@InputTime datetime
AS
Declare @SqlStr As Varchar (200)
SELECT UserID as wt_count FROM User_WantTo WHERE UserID = @UserID
if(@@RowCount>0)
begin
Set @SqlStr = 'UPDATE User_WantTo SET
Sex ='''+ @Sex+''',
AgeRange = '''+@AgeRange+''',
StudyLevel = '''+@StudyLevel+''',
Salary = '+@Salary+',
Photo = '''+@Photo+''',
IsWed='''+@IsWed+''',
Height = '''+@Height+''',
Province = '''+@Province+''',
City = '''+@City+'''
WHERE UserID = '+@UserID
--InputTime = '+@InputTime+'
end
else
begin
Set @SqlStr = 'INSERT INTO User_WantTo Values ('+@UserID+',
'''+@Sex+''',
'''+@AgeRange+''',
'''+@StudyLevel+''',
'+@Salary+',
'''+@Photo+''',
'''+@IsWed+''',
'''+@Height+''',
'''+@Province+''',
'''+@City+''')'
--'+@InputTime+'
end
-- select(@SqlStr)
exec (@SqlStr)
GO
--------------------------------------------------------------------------
过程调用:exec UserWant_Update 9,'男','25~30','大学专科以上',54,'有照片','未婚','155cm
以上','北京市','海淀区'
执行结果:用select(@SqlStr)看到的是:
将 varchar 值 'UPDATE User_WantTo SET
Sex ='男',
AgeRange = '25~30',
StudyLevel = '大学专科以上',
Salary = 54,
Photo = '有照片',
IsWed='未婚',
Height = '155cm以上',
Province = '北京市',
City = '海淀区'
WHERE UserID = '转化为int时发生错误,显然@UserID 未取到值,
不知道为什么取不到,明明传了参数的,第一个 9 就是