आरंभिक BEGIN
. में सबसे पहले @USERNAME घोषणा पर टिप्पणी करें ब्लॉक करें
-- DECLARE @USERNAME varchar(110)
फिर NULL
. को हैंडल करें USERNAME
. के लिए मान जैसा कि SELECT * INTO
. में ब्लॉक करें
ISNULL(b.first_Name, '') + ' ' + ISNULL(b.last_name, '') AS USERNAME
फिर @USERNAME
जोड़ें कर्सर में के रूप में
DECLARE Cur_1 CURSOR
FOR SELECT CUser_id, User_Id, USERNAME FROM #temptable
OPEN Cur_1
DECLARE @CUser_id INT
DECLARE @User_Id INT
DECLARE @USERNAME VARCHAR (200) -- can set your required length
FETCH NEXT FROM Cur_1
INTO @CUser_id, @User_Id
फिर @USERNAME
NULL
को नहीं फेंकेगा त्रुटि
अपडेट करें :आपकी टिप्पणियों के आधार पर, मैंने उत्तर अपडेट किया:
तो आप @USERNAME
प्राप्त करना चाहते हैं U_datetime >= @As_ONDATE
. के आधार पर हालत।
तो अपने मौजूदा कोड का उपयोग करें और @USERNAME
प्राप्त करने के लिए कर्सर के अंदर एक और ब्लॉक जोड़ें मान SELECT @REPORTDATE = U_datetime FROM inward_doc_tracking_trl where U_datetime >= @As_ONDATE
SELECT @USERNAME = ISNULL(b.first_Name, '') + ' ' + ISNULL(b.last_name, '') -- no need of column alias here
FROM inward_doc_tracking_trl a
INNER JOIN user_mst b on a.CUser_id = b.mkey
WHERE a.U_datetime >= @As_ONDATE