Maciej Los
Если вы хотите увеличить BillNo
до следующей даты в многопользовательской среде я бы предложил создать вычисляемый столбец в вашей таблице , который получит функцию SQL в виде формулы. Эта функция получит дату продажи в качестве входных данных и возврата MAX(BillNo) +1
. Например:
CREATE FUNCTION BillNumberForDate(@inputDate DATE TIME) RETURNS INT
AS
BEGIN
DECLARE @bn INT = 0;
SELECT @bn=COALESCE(MAX(BillNo), 0) + 1
FROM YourTable
WHERE CONVERT(DATE, SaleDate) = @inputDate
RETURN @bn
END;
Как добавить эту функцию в вычисляемый столбец вашей таблицы? Видеть:
Формула для свойства спецификации вычисляемого столбца в SQL Server 2012[
^]
Для получения более подробной информации, пожалуйста, смотрите:
СОЗДАТЬ ФУНКЦИЮ (Transact-SQL) | Microsoft Docs[
^]
Указание вычисляемых столбцов в таблице | Microsoft Docs[
^]
Примечание:
Я бы настоятельно не советовал вам "производить"
BillNo
на стороне клиента по множеству причин. Например: вы получите дубликат
BillNo
с.