Skip to main content

SQL ile recid

print '** BEGIN **' declare @TABID int, @nextval bigint, @lastUsed bigint, @sql NVARCHAR(4000),

@msgName varchar(250), @tablename varchar(250)

DECLARE loopTrough CURSOR FOR

select TABID, NEXTVAL from systemsequences where systemsequences.Name =

'SEQNO' and

systemsequences.DATAAREAID = 'dat' and

systemsequences.TABID > 0


open loopTrough


FETCH next FROM loopTrough INTO @TABID, @nextval

WHILE @@FETCH_STATUS = 0

BEGIN



set @tablename = isnull((select [SQLNAME] from SQLDICTIONARY where

SQLDICTIONARY.FIELDID = 0 and SQLDICTIONARY.TableId = @TABID), '')


if @tablename <> ''

set @msgName = @tablename + '(No. ' + convert(varchar(20), @TABID) + ')'

else

set @msgName = '(No. ' + convert(varchar(20), @TABID) + ')'



print 'Analyze ' + @msgName + ' ...'


IF @tablename <> '' and

EXISTS (SELECT 1

FROM INFORMATION_SCHEMA.TABLES

WHERE TABLE_TYPE='BASE TABLE'

AND TABLE_NAME=@tablename)

begin


set @sql = N'SELECT @ret = MAX(RECID) FROM ' + @tablename

EXEC sp_executesql @sql, N'@ret bigint OUTPUT', @lastUsed OUTPUT


if (@nextVal < @lastUsed)

begin

print '> have to be corrected (next RecId: ' + convert(varchar(250),

@nextVal) + ' < max RecID: ' + convert(varchar(250), @lastUsed) + ')'

update systemsequences set nextval = (@lastUsed + 1) where

systemsequences.Name = 'SEQNO' and

systemsequences.TABID = @TABID and

systemsequences.DATAAREAID = 'dat'

print '> corrected; next RecId: ' + convert(varchar(250), @lastUsed + 1)

end

end

else

begin

print @msgName + ' not in SQLDictionary or Table not in DataBase'

end



FETCH next FROM loopTrough INTO @TABID, @nextval

END

close loopTrough

DEALLOCATE loopTrough

print '** Finish **'

Popular posts from this blog

What does this mean: "The form datasource query object does not support changing its AllowCrossCompany property after the form has executed the query."?

I have made a form with datasources vendtable and vendtrans. Inside vendtable_ds.executequery() looks like this: QueryBuildDataSource queryBuildDatasource ,queryBDS_VendTrans_Invoice; ; queryBuildDatasource = this.query().dataSourceTable(tablenum(vendtable)); queryBDS_VendTrans_Invoice = this.query().dataSourceTable(tablenum(vendtrans)); if (curext() == "MASTERCOMP") { this.query().allowCrossCompany(true); } else { this.query().allowCrossCompany(false); } //FilterVendorName = stringedit control on form if (FilterVendorName.text()) { queryBuildDatasource.addRange(fieldNum(VendTable,Name)).value(strfmt("*%1*", FilterVendorName.text())); } else { queryBuildDatasource.clearRange(fieldNum(VendTable,Name)); } //FilterInvoiceNumber = stringedit control on form if (FilterInvoiceNumber.valueStr() == "") { queryBDS_VendTrans_Invoice.enabled(false); } else { queryBDS_VendTrans_Invoice.enabled(true); queryBDS_VendTrans_In...

Credit Note [Dynamics AX] using X++

This post will help to create credit note for a sales order based on the invent lot id. All the invoices raised for a particular sales line – Lot Id will be raised back as a credit note. Information on Credit Note: A credit note or credit memorandum (memo) is a commercial document issued by a seller to a buyer. The seller usually issues a Credit Memo for the same or lower amount than the invoice, and then repays the money to the buyer or sets it off against a balance due from other transactions Below Code will help to create credit note for all the invoices raised against the sales line -lot id. Please note: This code can be customized as per your requirements. This is just a template to help creating credit note using X++ code. Please test the code before use. static void SR_CreateCreditNote_Sales(Args _args) { // Coded by Sreenath Reddy CustInvoiceTrans custInvoiceTrans; Dialog dialog = new Dialog(“Create credit note – for sales.”); DialogField dfInv...