Wednesday, March 21, 2018

SQL script for Duplicate recid issues

USE ERPLITE_SIT
DECLARE @MaxRecID BIGINT
DECLARE @NextVal BIGINT

SELECT @MaxRecID = MAX(RECID)
FROM PURCHTABLE

SELECT @NextVal = NEXTVAL
FROM SYSTEMSEQUENCES
INNER JOIN SQLDICTIONARY
ON SQLDICTIONARY.FIELDID = 0
AND SQLDICTIONARY.name = 'PURCHTABLE'
AND SQLDICTIONARY.TABLEID = SYSTEMSEQUENCES.TABID

IF (@NextVal > @MaxRecID)
BEGIN
PRINT 'PURCHTABLE did not need to be updated.'
END
ELSE
BEGIN
PRINT 'Updated PURCHTABLE from ' + CONVERT(VARCHAR(MAX), @NextVal) + '' + 'to' + '' + CONVERT(VARCHAR(MAX), @MaxRecID + 1)

UPDATE SYSTEMSEQUENCES
SET NEXTVAL = @MaxRecID + 1
FROM SYSTEMSEQUENCES
INNER JOIN SQLDICTIONARY
ON SQLDICTIONARY.FIELDID = 0
AND SQLDICTIONARY.name = 'PURCHTABLE'
AND SQLDICTIONARY.TABLEID = SYSTEMSEQUENCES.TABID
END 

No comments:

How to identify the user that was used to change an object from AOT in AX2012

Get the object name for which we need to track these (user and date&time) information's. Login to SQL Server Management Studio an...