mssql 的 存储过程 变量赋值问题
在mssql的存储过程里我想在insert加完值后然后取出其id然后把这个id值赋值给变量,然后在通过这个变量操作别的语句,我的思路是这样子的,但是具体的我不知道如何做,...
在mssql的存储过程里 我想 在 insert 加完值后 然后取出其id 然后把 这个id值 赋值给变量,然后在通过这个变量操作别的语句 ,我的思路是这样子的,但是具体的我不知道如何做,希望那位大侠给我 写下,最好是简单点的,不要一篇文章一样的东西发来,
展开
展开全部
自动生成的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 --使用该变量
设表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()";
那个 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()";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
declare @id
insert into 表 (字段1,字段2) values (字段1的值,字段2的值);select @id=@@Identity
--操作其他的语句就可以直接用@id这个变量了
希望有帮到你。另外推荐一个it专业招聘网站
http://www.headin.cn/Jobs
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
展开全部
给别量赋值在存储过程内部?? 你所说的"操作别的语句"是这个存储过程里面的语句吗???
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你是要按照怎样的规则变化,你可以给@a赋一个动态变量值,@a符合哪个条件,执行哪条sql语句,用begin......end语句块,或者用内外循环的方式也可实现,这样就跟@a的值多少没关系了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询