唯一标识的问题
我在库中想录入一个唯一能标识的字段,但是不知道怎么确定,我到了可以加入一列id,然后根据id确定唯一标识,可是我不知道再插入一条记录时,怎么把这条的id取出来.因为往往都是插入之后才知道id是多少,我现在是想在插入时就想知道要插入的id值. 问题点数:20、回复次数:11Top
1 楼xiaonvjing(飞扬)回复于 2005-08-03 12:39:16 得分 5
你可以这样做:
建立测试环境:
create table a (id int identity,name varchar(20))
go
insert a values('chenguang')
go
select @@identity --得到刚刚插入的id 值
Top
2 楼hdhai9451(☆新人类☆)回复于 2005-08-03 12:44:16 得分 0
create table a (id int identity(1,1),name varchar(20))
go
..........Top
3 楼weiminghanquan(未明寒泉)回复于 2005-08-03 12:45:42 得分 0
欢迎进入3764722 群讨论学习SQLTop
4 楼xiaonvjing(飞扬)回复于 2005-08-03 12:49:32 得分 0
你也可以通过创建存储过程,或是触发器都是可以做到的Top
5 楼zhjihui_080220()回复于 2005-08-03 13:01:05 得分 0
select @@identity from tablename
可以吗,为什么总是那个值呀,不管哪个表Top
6 楼vivianfdlpw()回复于 2005-08-03 13:15:02 得分 5
select ident_current('tablename')Top
7 楼zhjihui_080220()回复于 2005-08-03 13:40:19 得分 0
我用.net作程序.
string sel="select ident_current('tableid') as iCount";
SqlCommand cmd=new SqlCommand(sel,myConnection);
cmd.Connection.Open();
SqlDataReader dr=cmd.ExecuteReader();
while(dr.Read())
{
bh_new=Int32.Parse(dr["iCount"].ToString());
}
dr.Close();
cmd.Connection.Close();
为什么说输入字符串格式不正确呢Top
8 楼chenyuandxm(一剑平江湖)回复于 2005-08-03 14:50:20 得分 0
创建触发器,从inserted表中可以取得。Top
9 楼topdogXP(心残)回复于 2005-08-03 15:46:30 得分 5
string sel="select ident_current('tableid') as iCount";
SqlCommand cmd=new SqlCommand(sel,myConnection);
cmd.Connection.Open();
int Curr_ID=cmd.ExecuteScalar();
cmd.Connection.Close();Top
10 楼feitianbianfu16()回复于 2005-08-03 16:57:00 得分 0
select top 1 id from tablename order by descTop
11 楼feitianbianfu16()回复于 2005-08-03 16:58:46 得分 5
上面是插入了以后才知道的sql语句,如果你想插入之前知道,语句如下:
select top 1 id+1 from tablename order by descTop




