asp.net c#语言和sql server2008主键增量 [英] asp.net c# language and sql server2008 primary key increment

查看:98
本文介绍了asp.net c#语言和sql server2008主键增量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望能找到帮助。我正在使用ASP.Net C#。数据库是使用SQL Server 2008在Visual Studio中创建的,我制作了一些表。它的主键自动递增,但有些表我没有使用自动增量属性。我想使用代码进行增量。



如果我有3个表(帐户,经理,项目),例如,当用户1创建帐户时,account_id将自动增加当选择帐户类型管理器时,我想通过代码递增manager_id。具有account_id 1和manager_id 1的用户1能够创建多个项目。



这是我的数据库的一部分:



I hope to find assistance. I am using ASP.Net C#. The database was created inside Visual Studio using SQL Server 2008 and I made some tables. Its primary key auto increments, but some tables I am not using the auto increment property. I want to make increment using code.

If I have 3 tables(account, manager, project) for example, when a user 1 create account the account_id will auto increment and when select account type manager the manager_id I want to increment by code. User 1 with account_id 1 and manager_id 1 able to create multiple projects.

and this is part of my database:

create table  account (
account_id   int(8) PRIMARY KEY  AUTO_INCREMENT,
username char(12) not null ,
email varchar (50) not null,
password varchar (20) not null
account type int (5)
);

create table  profile (
profile_id int(8) PRIMARY KEY  AUTO_INCREMENT,
first_name varchar (20),
last_name varchar(20),
gender char(10),
country char (15),
phone_number int(15),
profile_description varchar (100),
account_id int (8),
manager_id int (8),
team_id int(8),
client_id int(8),

Constraint profile_fk foreign key (account_id) references account (account_id),
Constraint profile_fk2 foreign key (manager_id) references manager (manager_id),
Constraint profile_fk3 foreign key (team_id) references team (team_id ),
Constraint profile_fk4 foreign key (client_id) references client (client_id),

);

create table  manager  (
manager_id int(8) PRIMARY KEY  ,

project_id int(8),

Constraint manager_fk1 foreign key (project_id ) references project (project_id )
);

create table  project (
project_id int(8)PRIMARY KEY  AUTO_INCREMENT,
 project_name char (15),
 project_description varchar(100),

);

推荐答案

在存储过程中执行。

这些是原子操作,因此不会出现任何中断多用户环境导致数字增加不足或增加。
Do it in a stored procedure.
These are atomic operations, so there can''t be any interruption in a multiuser environment causing a number to be under- or over- incremented.


这篇关于asp.net c#语言和sql server2008主键增量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆