Как вычислить пользовательский идентификатор, чтобы расти до бесконечности
Привет
У меня есть функция определения пользователя, как показано ниже, чтобы вычислить пользовательский идентификатор, используя PK Id в качестве руководства
CREATE FUNCTION [dbo].[CustomeId] ( @Prefix NVARCHAR(10), @Id INT, @Length INT, @PaddingChar CHAR(1) = '0' ) RETURNS NVARCHAR(MAX) AS BEGIN RETURN ( SELECT @Prefix + RIGHT(REPLICATE(@PaddingChar, @Length) + CAST(@Id as nvarchar(10)), @Length) ) END
В спецификации вычисляемого столбца моей таблицы sql у меня есть:
([dbo].[CustomeZoneId]('GH-',CONVERT([nvarchar](10),[Id],(0)),(10),'0'))
и является гр-0000000001 , гр-999999999
но я хочу, чтобы он мог расти до бесконечности вдоль PK Id. что-то вроде GH-1 до бесконечности
Что я уже пробовал:
([dbo].[CustomeZoneId]('GH-',CONVERT([nvarchar](10),[Id],(0)),(10),'0'))
njammy
Разве вы не можете использовать объект последовательности MS SQL?
Dave Kreskowiak
Вы не можете использовать "бесконечность" как требование. Бесконечные идентификаторы требуют бесконечного хранения, которого нет ни у одной машины на земле.
Это бизнес-правило, о котором вы говорите. Так что же ожидает бизнес, когда идентификационные номера "ролловер"? Вот где лежит твой ответ.