Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Не могат да се вмъкнат NULL стойности в колона „USERNAME“, таблица „tempdb.dbo.#temptable error

Първо коментирайте декларацията @USERNAME в началния BEGIN блокиране

 -- 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Любими трикове за настройка на производителността

  2. Обработка на изчаквания в съхранени процедури

  3. Върнете всички файлови групи за текущата база данни в SQL Server

  4. SQL CONCAT IF израз?

  5. Кои са идеалните инструменти за анализ на sql скриптове?