Как я создал бы столбец IDENTITY в SQLServer с текстом в столбце?
Пример:
ABCD-987065 ABCD-987066 ABCD-987067
Проверьте ответы здесь ...
Увеличение буквенно-цифрового значения в Пользовательская функция
В дополнение к другим ответам, вы можете создать вычисленный столбец в таблице, чтобы предоставить то, что вы просите.
CREATE TABLE dbo.MyTable
(
Id int NOT NULL PRIMARY KEY,
CombinedId AS 'ABCD-' + CAST(Id as varchar(16))
)
Или:
CREATE TABLE dbo.MyTable
(
Id int NOT NULL PRIMARY KEY,
PrefixField varchar(16),
CombinedId AS PrefixField + CAST(Id as varchar(16))
)
(В вашем вопросе не сказано, будет ли префикс исправлен или нет...)
.Тебе не придется не использовать столбцу идентификатора, но сгенерировал идентификаторы / строки самостоятельно.
Намного лучше форматировать столбец идентификатора для отображения вместо этого, особенно если строковая часть постояна для всех записей - делает индексацию / запрос большего количества производительности и экономит на пространстве БД.
Если записи могут иметь разное раздел строки (то есть не все, начиная с «ABCD-»), то вы можете хранить это как отдельное поле.
Это может стать для вас разумной отправной точкой. Поддержки Atom еще нет, но вы могли бы помочь?
-121--2608932- только: возврат st;
No. Фактический тип столбца также должен быть int или bigint.
>>> a = [1, 2, 3]
>>> a[0], a[2] = a[2], a[0]
>>> a
[3, 2, 1]
-121--789208- Естественно, что эти функции должны быть нестатичными. Но если вы сомневаетесь, пожалуйста, обратитесь к GRASP, они описывают подобные вещи.
Согласно GRASP Information Expert эти функции не должны быть статичными.
Несмотря на отсутствие прямой информации о статическом методе, существует
Information Expert приведет нас к возложить ответственность на классы с наибольшая информация, необходимая для выполнить его.
Если вы делаете методы статичными, вы будете перемещать логику дальше от фактических данных и должны будете передавать данные в метод.
Удаление статики приблизит логику к используемым данным.
-121--3311470-Вы можете увеличить свои последовательности значения с помощью такой функции:
http://www.sqlservercentral.com/scripts/Miscellaneous/31448/
Мне любопытно, однако, почему вы хотите использовать буквенно-числовую клавишу, а не просто числовую.
Нет, но вы можете создать свой выберите оператор таким образом, чтобы вернуть нужный код:
Select 'ABCD-' + Cast(IdColumn as varchar) as IdColumn From MyTable Where (....);
Это предполагает, что у вас есть столбца, называемая idcolumn в таблице, и что «идентичность «Собственность была установлена на« правда ». То есть выделите поле в конструкторе таблицы SQL Server Management Studio, и вы увидите окно для свойств внизу.
Если часть «ABCD» может измениться, вы можете поместить это значение в другом поле, а затем получить так:
Select PrefixField + '-' + Cast(IdColumn as varchar) as IdColumn From MyTable Where (....);
вы можете, конечно, создать представление для выполнения этого для вас или даже вычисленного поля, а также Отказ Таким образом, возвращаемое значение встроено в запрос, и вам не нужно не забывать вводить все это каждый раз.
Нет, извините. Идентификационное "свойство" может быть размещено только на столбцах с целочисленным или десятичным типом данных.