MS SQL 2008 にストアド プロシージャがあり、エラーなくコンパイルされますが、ストアド プロシージャを実行すると、「文字列またはバイナリ データが切り捨てられます」というエラー メッセージが表示されます。残念ながら、これがどこで起こっているのかを追跡することはできません。
ストアド プロシージャを開発したとき、最初にクエリをテストしたところ、うまくいきました。
だから、誰かが私にこれが起こっている場所と理由、そしてそれを解決する方法を示すことができれば、私は感謝しています:
ALTER PROCEDURE [dbo].[sp_Material_Validation]
@ValidType varchar(MAX),
@MaterialID varchar(MAX)
AS
BEGIN
DECLARE
@MessageReturn varchar(100);
SET @MessageReturn = NULL;
IF @ValidType = 'Primary'
Select TOP 1 Valid.StatusMessage
From
(Select MatID,'Property Not Completed' as StatusMessage
From dbo.Properties
WHERE DATALENGTH(ValueString)=0
UNION
Select PrpCount.MatID,'There not all Properties exist' as StatusMessage
From (Select Count(unkey) as unKeyCt, MatID
From Properties
Group By MatID
Having NOT Count(Cast(UnKey as Int)) = 19)AS PrpCount
UNION
SELECT Header,'Material does not exist' as StatusMessage
FROM Materials Item
Where NOT EXISTS (Select ID
FROM MatMaster Mat
WHERE MAT.ID= Item.HEAD)
UNION
SELECT Header,'Material(s) not Complete' as StatusMessage
FROM Materials
Where MatID IN (Select ID
FROM MatMaster
WHERE INC ='Y')) as Valid
Where Valid.MatID = @MaterialID;
IF @MessageReturn IS NOT NULL
UPDATE dbo.Mat_DEV
SET Inco ='Y',
User_Message = @MessageReturn
WHERE MatID = @MaterialID
ELSE
UPDATE dbo.Mat_DEV
SET User_Message = 'No Validation Errors'
WHERE MatID = @MaterialID