存储过程问题!大家帮帮忙!

tshulinzi 2004-10-31 10:06:20
一个表table
字段:
ID(编号)
name(姓名)
写一个插入存储过程,只输入姓名,编号自动生成,如(no.1)以后自动加1(no.2,no.3......)
先谢了!
...全文
109 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
RainYang 2004-11-01
  • 打赏
  • 举报
回复
用标识行
create table tb(
id int identity(1,1),
name varchar(100)
)
27257674 2004-11-01
  • 打赏
  • 举报
回复
哦不好意思改一下:
alter procedure AddNameAuto
改为
create procedure AddNameAuto
27257674 2004-11-01
  • 打赏
  • 举报
回复
create table #表名
(
ID int identity(1,1),
name varchar(20)
)
alter procedure AddNameAuto
@pName varchar(20)
as
if @pName =''
return 1 --姓名不能为空
insert into #表名(name)
values (@pName)

select id = @@IDENTITY
rouqu 2004-11-01
  • 打赏
  • 举报
回复
如上 列名ID就是标识列 起始数为1 每次递增为1
rouqu 2004-11-01
  • 打赏
  • 举报
回复
create table t4 (
ID int identity(1,1),
col1 int default(0) not null,
col2 datetime default(getdate()) )
  • 打赏
  • 举报
回复
设为标识行
tshulinzi 2004-11-01
  • 打赏
  • 举报
回复
搞不定,那位能具体点呢?
yzhl999 2004-11-01
  • 打赏
  • 举报
回复
这是一列的一个属性,这个属性可以使此列自动递增,
具体用法看帮助啊
tshulinzi 2004-11-01
  • 打赏
  • 举报
回复
怎么用identity列!
mgsray 2004-10-31
  • 打赏
  • 举报
回复
--create table
create table tb(id varchar(10), name varchar(100))
--proc
create proc insert_table @name varchar(100) as
declare @id varchar(10),
@i_id int
select @id=isnull(max(id),'no.0') from tb
set @id=stuff(@id,1,3,'')
set @i_id=convert(int,@id)+1
insert tb select 'no.'+convert(varchar(10),@i_id), @name
--test
exec insert_table 'aaa'
exec insert_table 'bbb'
exec insert_table 'ccc'
--show result
select * from tb
--drop test table
drop table tb
--result
id name
no.1 aaa
no.2 bbb
no.3 ccc

(所影响的行数为 3 行)

不过不建议这么做,还是用identity列比较好,然后前台显示的时候处理№.

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧