3

私は非常に混乱しています。従業員 ID がプレフィックス形式で自動生成されることを望んでいます。SQL サーバーでのトリガーの前から可能であることを知っています。投稿 http://www.aspdotnet-suresh.com/2012/04/set-custom-自動生成されたincrement.html

USE [test1]
GO

/****** Object:  Table [dbo].[Users]    Script Date: 03/08/2013 12:28:08 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Users](
    [UserId] [varchar](50) NOT NULL,
    [UserName] [varchar](50) NULL,
    [LastName] [varchar](50) NULL,
    [Location] [varchar](50) NULL,
 CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED 
(
    [UserId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

そしてディスプレイは

    UserId  UserName    LastName    Location
08U13000    SureshDasari    Dasari  Chennai
08U13001    SureshDasari    Dasari  Chennai
08U13002    SureshDasari    Dasari  Chennai
08U13003    SureshDasari    Dasari  Chennai
08U13004    SureshDasari    Dasari  Chennai
08U13005    SureshDasari    Dasari  Chennai
08U13006    SureshDasari    Dasari  Chennai
08U13007    SureshDasari    Dasari  Chennai
08U13008    SureshDasari    Dasari  Chennai
08U13009    SureshDasari    Dasari  Chennai
08U13010    SureshDasari    Dasari  Chennai
08U13011    SureshDasari    Dasari  Chennai
08U13012    SureshDasari    Dasari  Chennai
08U13013    SureshDasari    Dasari  Chennai
08U13014    SureshDasari    Dasari  Chennai
08U13015    SureshDasari    Dasari  Chennai

SQLで次のシリーズA001000001 ... A001xxxxxxを持つ主キーを自動的に作成する方法は?

しかし、トリガーの前に挿入から実行したいのですが、このトリガーは同じテーブルと同じ行で機能しますex -

INSERT INTO Users (UserName,LastName,Location) VALUES('SureshDasari','Dasari','Chennai')

およびユーザーID自動作成?のように --08U13015,08U13014

挿入されたテーブルへの挿入から実行していましたが、エラーが挿入または削除されたテーブル
またはその他の方法で挿入できません事前に感謝します

4

1 に答える 1

1

質問で@marc_sが提供する答えは、それを行う方法です。

あなたの場合、次のようになります。

create table Users
(
  Id int identity (3000, 1),
  UserId as '08U1'+right('0000'+cast(Id as varchar(5)), 5) persisted,
  UserName varchar(50),
  LastName varchar(50),
  Location varchar(50),
  constraint PK_Users primary key (UserId)
)

ここで提案されているようにはしません。行を削除した場合、または同時実行の場合は、重複が発生します。

SQL フィドル

于 2013-03-08T07:46:34.373 に答える