اگر در سوابق شهرسازی نام نوع سوابق را به اشتباه متفاوت با نوع درخواست نشان می دهد چکار کنیم
پرسش
گاهی اوقات در زمان بایگانی دائم فیلد
RequestTypeValue
جدول
Request
با فیلد
value
جدول
basedata
یکی هست ولی اطلاعات فیلد
RequetType
متفاوت می باشد
پاسخ ( 1 )
این مشکل به دلیل ثبت نبودن بیس دیتای مورد نیاز با code و calccode2مشابه با requestTypeبوجود می آید.
برای تست اینکه آیا بیس دیتای مورد نیاز وجود دارد یا خیر از اسکریپت زیر استفاده کنید :
DROP TABLE #BaseData
IF OBJECT_ID(‘tempdb..#Items’) IS NOT NULL
DROP TABLE #Items
SELECT * INTO #BaseData FROM BaseData WHERE category = ‘BASEDATA_URBAN_HISTORY_TYPE’
CREATE TABLE #Items(code int, value VARCHAR(255))
INSERT INTO #Items SELECT p.code, p.value
FROM
Request r
JOIN BaseData b ON r.requestTypeValue = b.value
JOIN #BaseData p ON 1 = 1
WHERE
r.id =’آیدی ریکوئست مشکل دار را اینجا وارد کنید’ AND p.calcCode2 IS NOT NULL AND ‘,’ + REPLACE(p.calcCode2,’ ‘,”) + ‘,’ LIKE N’%,’ + b.calcCode2 + N’,%’
IF (SELECT COUNT(1) FROM #Items) > 1
DELETE i FROM
Request r
JOIN BaseData b ON r.requestTypeValue = b.value
JOIN #Items i ON i.code <> b.code
WHERE
r.id = ‘آیدی ریکوئست مشکل دار را اینجا وارد کنید’
select * from #Items
select r.requestType , b.value ,r.requestTypeValue,* from BaseData b join Request r on b.value = r.requestTypeValue where r.id = ‘آیدی ریکوئست مشکل دار را اینجا وارد کنید’
select b.title ,* from #Items i join BaseData b on i.value COLLATE Persian_100_CI_AI = cast(b.value as nvarchar(max)) COLLATE Persian_100_CI_AI
برای مثال می توانید بیس دیتا را به اینصورت ثبت کنید :
INSERT INTO [dbo].[BaseData]
([id]
,[deleted]
,[category]
,[title]
,[value]
,[orderValue]
,[code]
,[IsActive]
,[calcCode2])
VALUES
(NEWID()
,0
,’BASEDATA_URBAN_HISTORY_TYPE’
,N’مجوز حفاري آب و فاضلاب’
,’BASEDATA_URBAN_HISTORY_TYPE:36′
,0
,requestTypeCodeHere
,1
,requestTypeCalcCode2)
GO
فایل پیوست