Quantcast
Channel: SQL Server Database Engine forum
Viewing all articles
Browse latest Browse all 15930

SQL Server 2019 Getting error String or binary data would be truncated

$
0
0

Hello colleagues!

Following my question in Project Server forum in this thread https://social.technet.microsoft.com/Forums/en-US/e3167ffc-f7f0-43ac-90a7-a01c7c7db270/project-server-2019-submitted-but-not-approved-workhours I got error

String orbinary data would be truncated.

in this my script

--------------------------------------------------------------------------------------------------------
-- DECLARE TABLES
--------------------------------------------------------------------------------------------------------
DECLARE @DataBegin DATETIME, @DataEnd DATETIME
DECLARE @t TABLE (ASSN_TRANS_UID UNIQUEIDENTIFIER, ASSN_TRANS_ACTION_ENUM INT) 
DECLARE @m TABLE (ASSN_UID UNIQUEIDENTIFIER, RES_SAVED_DATE INT, h FLOAT, ASSN_TRANS_SUBMIT_DATE DATE, ASSN_TRANS_ACTION_ENUM INT)
DECLARE @fin TABLE (ASSN_UID UNIQUEIDENTIFIER, RES_SAVED_DATE DATE, h FLOAT, ASSN_TRANS_SUBMIT_DATE DATE, TASK_UID UNIQUEIDENTIFIER, PROJ_UID UNIQUEIDENTIFIER, RES_UID UNIQUEIDENTIFIER)
DECLARE @report TABLE (AssignmentUID UNIQUEIDENTIFIER, TimeByDay DATE, ProjectUID UNIQUEIDENTIFIER, TaskUID UNIQUEIDENTIFIER, AssignmentActualWork FLOAT, ResourceUID UNIQUEIDENTIFIER)
DECLARE @upselect TABLE (ASSN_UID UNIQUEIDENTIFIER, RES_SAVED_DATE DATE, TASK_UID UNIQUEIDENTIFIER, PROJ_UID UNIQUEIDENTIFIER, RES_UID UNIQUEIDENTIFIER)
DECLARE @tasksel TABLE (ASSN_UID UNIQUEIDENTIFIER, TASK_NAME VARCHAR)

SET DATEFORMAT dmy 
SET @DataBegin = '07-07-2020' 
SET @DataEnd = '21-07-2020' 

--------------------------------------------------------------------------------------------------------
-- COLLECTING SUBMITTED DATA
--------------------------------------------------------------------------------------------------------

INSERT @t 
SELECT 
		at.ASSN_TRANS_UID, 
		at.ASSN_TRANS_ACTION_ENUM 
FROM 
		(SELECT 
				ASSN_UID, 
				ASSN_TRANS_UID, 
				ASSN_TRANS_ACTION_ENUM 
		FROM 
				pjpub.MSP_ASSIGNMENT_TRANSACTIONS 
		WHERE 
					(1=1)
--				AND 
--					ASSN_TRANS_STATE_ENUM LIKE 0	-- 0 - task update
													-- 1 - request rejection
													-- 2 - create task
													-- 3 - re-assign
													-- 4 - create assing
													-- 5 - re-assign to team
													-- 6 - delete task
													-- 7 - delete assigned
		) AS at 
	INNER JOIN 
			(SELECT 
					ISNULL(ass.ASSN_UID, a.ASSN_UID) [ASSN_UID] 
			FROM 
					pjpub.MSP_ASSIGNMENTS_SAVED ass 
				FULL JOIN 
						pjpub.MSP_ASSIGNMENTS a 
					ON 
						(ass.ASSN_UID = a.ASSN_UID) 
			WHERE 
					ISNULL(ass.ASSN_FINISH_DATE, a.ASSN_FINISH_DATE) >= @DataBegin 
				AND 
					ISNULL(ass.ASSN_START_DATE, a.ASSN_START_DATE) < @DataEnd+1 
			) AS tm 
		ON 
			at.ASSN_UID = tm.ASSN_UID 

--------------------------------------------------------------------------------------------------------
-- SENDING DATA TO THE FUNCTION
--------------------------------------------------------------------------------------------------------

INSERT @m 
SELECT 
		f.*, t.ASSN_TRANS_ACTION_ENUM	-- in results:	0 - submitted
										--				1 - approved
										--				2 - rejected
FROM 
		@t t CROSS APPLY dbo.SPK_ASSN_CHANGE_DATA (t.ASSN_TRANS_UID) f 
WHERE
		t.ASSN_TRANS_ACTION_ENUM IN ('0', '1')

--------------------------------------------------------------------------------------------------------
-- CONVERTING RES_SAVED_DATE
--------------------------------------------------------------------------------------------------------
INSERT @fin
SELECT
			tfin.ASSN_UID,
			DATEADD(dd,RES_SAVED_DATE, '19831231') AS RES_SAVED_DATE, 
			h AS h, 
			ASSN_TRANS_SUBMIT_DATE,
			SaveTable.TASK_UID,
			PROJ_UID,
			RES_UID
FROM
			@m tfin
	LEFT JOIN
			pjpub.MSP_ASSIGNMENTS_SAVED SaveTable
		ON
			tfin.ASSN_UID = SaveTable.ASSN_UID
WHERE 
			RES_SAVED_DATE >= DATEDIFF (DD,'19831231', @DataBegin) 
		AND 
			RES_SAVED_DATE <= DATEDIFF (DD,'19831231', @DataEnd)

--------------------------------------------------------------------------------------------------------
-- PREPARING REPORTING DATA
--------------------------------------------------------------------------------------------------------

INSERT @report
SELECT
			AssView.AssignmentUID AS AssignmentUID,
			AssView.TimeByDay AS TimeByDay, 
			ProjView.ProjectUID AS ProjectUID,
			TaskView.TaskUID AS TaskUID,
			AssignmentActualWork = SUM(AssView.AssignmentActualWork),
			ResView.ResourceUID AS ResourceUID
FROM
			dbo.MSP_EpmAssignmentByDay_Reports_UserView AssView
	LEFT JOIN 
			pjrep.MSP_EpmAssignment AssTable
		ON 
			AssView.AssignmentUID = AssTable.AssignmentUID
	LEFT JOIN 
			dbo.MSP_CustomViewReports_EpmResource_UserView ResView
		ON 
			AssTable.ResourceUID = ResView.ResourceUID
	LEFT JOIN 
			dbo.MSP_CustomViewReports_EpmProject_UserView ProjView
		ON 
			AssTable.ProjectUID = ProjView.ProjectUID
	LEFT JOIN 
			dbo.MSP_CustomViewReports_EpmTask_UserView TaskView
		ON 
			AssTable.TaskUID = TaskView.TaskUID
WHERE
			(1 = 1)
--		AND 
--			ResourceName IN ('Shuklin Roman')
		AND 
			(TimeByDay > @DataBegin AND TimeByDay < @DataEnd)
		AND 
			(AssView.AssignmentActualWork > 0.0)
GROUP BY 
			AssView.AssignmentUID,
			AssView.TimeByDay,
			ResView.ResourceUID,
			ProjView.ProjectUID,
			TaskView.TaskUID
--------------------------------------------------------------------------------------------------------
-- UNION ALL PUB AND REP UIDS
--------------------------------------------------------------------------------------------------------

INSERT @upselect
SELECT
			ASSN_UID, 
			RES_SAVED_DATE, 
			TASK_UID, 
			PROJ_UID,
			RES_UID
FROM
			@fin
UNION
			ALL
SELECT
			AssignmentUID, 
			TimeByDay, 
			TaskUID, 
			ProjectUID,
			ResourceUID
FROM
			@report

--------------------------------------------------------------------------------------------------------
-- GETTING TASKS
--------------------------------------------------------------------------------------------------------
INSERT @tasksel
SELECT
			ASSN_UID,
			TASK_NAME
FROM
			pjpub.MSP_ASSIGNMENTS_SAVED
UNION
			ALL
SELECT
			AssignmentUID,
			TaskName
FROM
			dbo.MSP_CustomViewReports_EpmAssignment_UserView AssView
	LEFT JOIN
			dbo.MSP_CustomViewReports_EpmTask_UserView TaskView
		ON	
			AssView.TaskUID = TaskView.TaskUID


--------------------------------------------------------------------------------------------------------
-- GENERATING FINAL REPORT
--------------------------------------------------------------------------------------------------------
SELECT
			upsel.PROJ_UID AS P_UID,
			upsel.RES_UID AS R_UID,
			ResView.ResourceName AS ResourceName,
			upsel.RES_SAVED_DATE AS TBD,
			upsel.ASSN_UID AS A_UID,
			upsel.TASK_UID AS T_UID,
			tasksel.TASK_NAME AS T_NAME,
			tfin.h AS SH,
			AssView.AssignmentActualWork AS AH
			
FROM
			@upselect upsel
	LEFT JOIN
			@fin tfin
		ON 
			upsel.ASSN_UID = tfin.ASSN_UID
	LEFT JOIN
			@report AssView
		ON
			upsel.ASSN_UID = AssView.AssignmentUID 
	LEFT JOIN
			@tasksel tasksel
		ON
			upsel.ASSN_UID = tasksel.ASSN_UID
	LEFT JOIN
			dbo.MSP_CustomViewReports_EpmResource_UserView ResView
		ON
			upsel.RES_UID = ResView.ResourceUID
WHERE
			(1=1)
		AND
			ResView.ResourceName IN ('Kucherovsky Andrey')
GROUP BY
			upsel.PROJ_UID,
			upsel.RES_UID,
			ResView.ResourceName,
			upsel.RES_SAVED_DATE,
			upsel.ASSN_UID,
			upsel.TASK_UID,
			tasksel.TASK_NAME,
			tfin.h,
			AssView.AssignmentActualWork

But error in result

(4314 rows affected)

(12388 rows affected)

(2852 rows affected)

(1342 rows affected)

(4194 rows affected)
Msg 8152, Level 16, State 30, Line 151
String or binary data would be truncated.
The statement has been terminated.

(2 rows affected)

Completion time: 2020-07-21T12:56:59.1425071+03:00

The Line 151 it's RES_UID in this select

INSERT @upselect
SELECT
			ASSN_UID, 
			RES_SAVED_DATE, 
			TASK_UID, 
			PROJ_UID,
			RES_UID
FROM
			@fin

By DECLARE the tables @fin and @upselect have RES_UID column as UNIQUEIDENTIFIER type.

Original RES_UID we're getting from pjpub.MSP_ASSIGNMENTS_SAVED in this select

INSERT @fin
SELECT
			mt.ASSN_UID,
			DATEADD(dd,RES_SAVED_DATE, '19831231') AS RES_SAVED_DATE, 
			h AS h, 
			ASSN_TRANS_SUBMIT_DATE,
			SaveTable.TASK_UID,
			PROJ_UID,
			RES_UID
FROM
			@m mt
	LEFT JOIN
			pjpub.MSP_ASSIGNMENTS_SAVED SaveTable
		ON
			mt.ASSN_UID = SaveTable.ASSN_UID
The RES_UID from pjpub.MSP_ASSIGNMENTS_SAVED is UNIQUEIDENTIFIER type too.

So, colleagues, what's wrong data types?


MCSA: Security; MCTP: Microsoft ISA 2006



Viewing all articles
Browse latest Browse all 15930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>