Tuesday, April 9, 2019

ট্রানজেক্সন ফেইল হলে এইটা চালাতে হবে।


DECLARE @SLID INT,
     @REFID INT,
@DEVID INT

SELECT @SLID = MAX(LASTSERIALNO) FROM SYSDOCSRNO D
INNER JOIN SYSCREGISTER R ON D.REGID=R.REGISTERID
INNER JOIN SYSBUSINESSDAY Y ON Y.BUNIT_ID=R.BUNIT_ID
WHERE DOCUMENTID='POS';

SELECT @REFID=MAX(REF_ID) FROM SALES_POSSALE_HEADER D
INNER JOIN SYSCREGISTER R ON D.Device_ID=R.REGISTERID
INNER JOIN SYSBUSINESSDAY Y ON Y.BUNIT_ID=R.BUNIT_ID;

SELECT @DEVID=MIN(REGID) FROM SYSDOCSRNO WHERE DOCUMENTID='POS' AND LASTSERIALNO=@SLID;
IF @SLID=@REFID
BEGIN

UPDATE SYSDOCSRNO SET LASTSERIALNO=LASTSERIALNO+1 WHERE REGID=@DEVID AND DOCUMENTID='POS'

END

 --SELECT @SLID [SL] SELECT @REFID [REF] SELECT @DEVID [DEVICE]

Database Suspect হলে এই টা চালাতে হবে।

EXEC sp_resetstatus [POSX];
ALTER DATABASE [POSX] SET EMERGENCY
DBCC checkdb([POSX])
ALTER DATABASE [POSX] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CheckDB ([POSX], REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE [POSX] SET MULTI_USER