Как добавить строку с автоинкрементным значением в SQL Server? - PullRequest
0 голосов
/ 17 ноября 2011

Как добавить строку со значением автоинкремента в SQL Server?

create table date (sno int 'emp_'+ identity(1,1))

В качестве вывода мне нужно указать

emp_1
emp_2

Ответы [ 3 ]

8 голосов
/ 17 ноября 2011
  1. Определите вашу таблицу с помощью обычного INT IDENTITY столбца
  2. Добавьте вычисляемый столбец , который объединяет строку и ID вместе:

Примерно так:

    CREATE TABLE dbo.YourTable
       (ID INT IDENTITY(1,1),
        EmpID AS 'emp_' + CAST(ID AS VARCHAR(10)) PERSISTED, 
        ......
       )

Таким образом, ваш столбец ID является обычным столбцом IDENTITY, а EmpID будет содержать emp_1, emp_2, emp_3, ......, emp_42, ...

, делая его постоянным вычисляемый столбец, данные на самом деле хранятся на диске и не требуют пересчета каждый раз, когда вы обращаетесь к таблице.Кроме того, при сохранении, вы можете легко добавить индекс в этот вычисляемый столбец тоже

1 голос
/ 17 ноября 2011

Вы не можете использовать любую строку в качестве автоинкремента

Допустим, у вас есть стол

|- id -|- name -|
|-  1 -|- Utku -|
|-  2 -|- Gopi -|

Позволяет выбрать их как emp_1, emp_2

SELECT CONCAT("emp_",id) AS emp_id,name
FROM table

Результат:

|- emp_id -|- name -|
|-  emp_1 -|- Utku -|
|-  emp_2 -|- Gopi -|
0 голосов
/ 17 июля 2015

Попробуйте использовать вычисляемый столбец MSDN

CREATE TABLE Yourtablename
(
    ID int IDENTITY (1,1) NOT NULL
    InvoiceID AS 'INV'+ right('000000' cast(ID as varchar(20),7)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...