まず、最初の 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
に基づく
したがって、既存のコードを使用し、CURSOR 内にもう 1 つのブロックを追加して、@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