mssql 的 存储过程 变量赋值问题

在mssql的存储过程里我想在insert加完值后然后取出其id然后把这个id值赋值给变量,然后在通过这个变量操作别的语句,我的思路是这样子的,但是具体的我不知道如何做,... 在mssql的存储过程里 我想 在 insert 加完值后 然后取出其id 然后把 这个id值 赋值给变量,然后在通过这个变量操作别的语句 ,我的思路是这样子的,但是具体的我不知道如何做,希望那位大侠给我 写下,最好是简单点的,不要一篇文章一样的东西发来, 展开
 我来答
WHITE_WIN
2013-04-24 · TA获得超过6111个赞
知道大有可为答主
回答量:3759
采纳率:50%
帮助的人:1867万
展开全部
自动生成的id 一般是增量的,所以用提取最大值的方法取的最新ID,
设表TABLE0有字段ID,FIELD1,FIELD2,FIELD3四个字段,这样:
DECLARE @NEWID INT--声明新ID变量
INSERT INTO TABLE0(FIELD1,FIELD2,FIELD3) SELECT FIELD1 FIELD2 FIELD3 FROM TABLE1 WHERE FIELD1='XXXX' .......--插入语句
IF @@ROWCOUNT>0 --如果插入了新行
SET @NEWID=(SELECT MAX(ID) FROM TABLENAME) --给新ID赋值
select @newid as 新ID --使用该变量
匿名用户
2013-04-24
展开全部
我想 在 insert 加完值后 然后取出其id ?

那个 id 是 IDENTITY 的 自动递增的么?

如果是的话, 简单

1> CREATE TABLE test_create_tab2 (
2> id INT IDENTITY(1, 1) PRIMARY KEY,
3> val VARCHAR(10)
4> );
5> go

查询指定表的 当前序号的数值,以及 增量、与种子数值的函数

SELECT
ident_current('test_create_tab2') as 序号当前数值,
ident_incr('test_create_tab2') as 增量,
ident_seed('test_create_tab2') as 种子数(起始数字)
go

在 C# 中, 可以通过下面的方式, 一次执行2行 SQL 语句, 来完成插入并获取最新ID 的处理逻辑.

/// 需要执行的 SQL 语句
/// 需要注意的是
/// 这里实际上定义了2条语句
/// 一条是 INSERT
/// 一条是 SELECT SCOPE_IDENTITY()
private const String INSERT_SQL =
@"INSERT INTO test_SCOPE_IDENTITY (val)
VALUES (@val)
SELECT SCOPE_IDENTITY()";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一棵秋天的树6
2013-04-24
知道答主
回答量:2
采纳率:0%
帮助的人:2948
展开全部
declare @id
insert into 表 (字段1,字段2) values (字段1的值,字段2的值);select @id=@@Identity

--操作其他的语句就可以直接用@id这个变量了

希望有帮到你。另外推荐一个it专业招聘网站

http://www.headin.cn/Jobs
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-24
展开全部
定义一个变量,你可以用函数Max来取刚赋值这一行的ID,把这个ID赋值给这个变量就可以用了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-24
展开全部
给别量赋值在存储过程内部?? 你所说的"操作别的语句"是这个存储过程里面的语句吗???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
衅行令家美
2020-05-03 · TA获得超过3844个赞
知道大有可为答主
回答量:3109
采纳率:30%
帮助的人:203万
展开全部
不知道你是要按照怎样的规则变化,你可以给@a赋一个动态变量值,@a符合哪个条件,执行哪条sql语句,用begin......end语句块,或者用内外循环的方式也可实现,这样就跟@a的值多少没关系了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式