내 프로그램에서 값을 가져 와서 테이블의 특정 열에 삽입하는 저장 프로 시저를 만들려고했습니다. 저장 프로 시저에서 잘못된 구문 오류가 계속 발생하지만 그 이유를 파악할 수 없습니까? 프로그램 코드 :레코드를 업데이트하는 SQL Server 저장 프로 시저
commandObj.CommandText = "sp_insert_profileDetails"
commandObj.Parameters.Clear()
Dim m_param As SqlParameter
m_param = commandObj.Parameters.Add("@authorId", SqlDbType.NVarChar, 100)
m_param.Direction = ParameterDirection.Input
m_param.Value = foundProfiles.Item(i)
m_param = commandObj.Parameters.Add("@age", SqlDbType.NVarChar, 50)
m_param.Direction = ParameterDirection.Input
m_param.Value = faceProfileAge.Item(i)
m_param = commandObj.Parameters.Add("@gender", SqlDbType.NVarChar, 50)
m_param.Direction = ParameterDirection.Input
m_param.Value = faceProfileSex.Item(i)
m_param = commandObj.Parameters.Add("@locale", SqlDbType.NVarChar, 50)
m_param.Direction = ParameterDirection.Input
m_param.Value = faceProfileLocation.Item(i)
m_param = commandObj.Parameters.Add("@pic", SqlDbType.NVarChar, 100)
m_param.Direction = ParameterDirection.Input
m_param.Value = faceProfilePic.Item(i)
Dim recordsAffected As Integer = commandObj.ExecuteNonQuery
Return recordsAffected
ALTER procedure [dbo].[sp_insert_profileDetails]
@authorId nvarchar(100),
@age nvarchar(50),
@gender nvarchar(50),
@locale nvarchar(50),
@pic nvarchar(100)
AS
Begin
set nocount on
update [dbo].ProfileFeed
set [age] = @age,
[sex] = @gender,
[locale] = @locale,
[pic] = @pic
where
[authorId] = @authorId
end
감사의 말 :
무엇이 오류입니까? 여기에 붙여 넣을 수 있습니까? –
귀하의 문제와 관련이 없지만 Sprocs에 sp_ 접두어를 붙이면 MS에 의해 권장되지 않습니다. http://msdn.microsoft.com/en-us/library/ms190669.aspx –
정확히 무엇을하고 있는지 알지 못하는 까다로운 요령 그리고 왜, 당신은 정말로 당신의 프로 시저 앞에 "sp_"를 붙이는 것을 원하지 않습니다. SQL은 모든 sp_ 프로 시저에 대해 몇 가지 추가 처리를 수행하며 이로 인해 시간이 지날수록 문제가 발생할 수 있습니다. (자세한 설명은 BOL에서 찾을 수 있습니다.) –