سؤال

مرحبا ايم باستخدام SQL2000 لذلك أنا في بناء ديناميكية الاستعلام و في الحالة الأخيرة علي هذا :

 IF (@apepac is not null and @nompac is not null and @month is not null )
    SELECT @DynaSQL_1= @DynaSQL_1 + ' AND PACIENTE.apellidos like ''' + @apepac + '%'''+
                                    ' AND PACIENTE.nombres like ''' + @nompac + '%'''+
                                    ' AND DATENAME(MONTH,honorariotecnologo.fechaestudio) = ''' + @month +'''' +
                                    ' AND YEAR(honorariotecnologo.fechaestudio) = '+@year+''

حتى المعلمة @العام أعلن في هذه الطريقة :

DECLARE @year int,

و الخطأ من SQL الناتج هو :

Msg 245, Level 16, State 1, Line syntax 
43Error to convert the nvarchar value '

ماذا يمكن أن يكون خطأ ؟

وذلك بفضل!

بالمناسبة لماذا إذا كانت المعلمة أعلن الباحث على الجسم الاستعلام يجب أن يكون مسبوك / تحويلها ؟ ...

هل كانت مفيدة؟

المحلول

عليك أن يلقي أو تحويل الباحث إلى NVARCHAR.يلقي جوجل تحويل tsql ضمن.

نصائح أخرى

عليك أن يلقي بك @Year كحرف القيمة.

جرب هذا:

' AND YEAR(honorariotecnologo.fechaestudio) = ' + CAST(@year AS varchar(10))  

كنت تريد أن تأخذ الرعاية من خطأ في التحويل...

' AND YEAR(honorariotecnologo.fechaestudio) = '+CAST(@year AS VARCHAR)

كنت تريد هذا إذا كنت ترغب في إضافة اقتباس مفردة إلى نهاية السلسلة.

' AND YEAR(honorariotecnologo.fechaestudio) = '+CAST(@year AS VARCHAR) + ''''
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top