2017-02-13 4 views
-1

У меня есть пользователь определить функцию, как показано ниже, чтобы вычислить пользовательский идентификатор, используя 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')) 

и вне положенный, как показано ниже:

GH-0000000001 , GH-999999999, etc 

, но я хочу, чтобы иметь возможность расти до бесконечности вдоль стороны PK Id. что-то вроде:

GH-9, GH-99, GH-999 to infinity 
+1

А что есть это сделать с C#? – Pikoh

+1

Никакой числовой тип данных не может содержать значение до бесконечности. Это сценарий реального времени? – Imad

ответ

0

Это не связано с C#, а с SQL Server.

Для ответа на ваш вопрос, не существует такой тип данных, который может расти до бесконечности, но если вы хотите, вы можете макс пользователя

nvarchar[max] 

надеюсь, что это помогает ..

+0

То, что я имею в виду, это не размер данных, а число, например, от 1 до 1 миллиарда и до сих пор считающееся без конца, пока столбец идентификатора таблицы растет. –