怎么求出刚刚插入的一条数据的主键值!特急!!问题一解,立马结贴!!!!!!!!!!!!!!!1

turenjie 2005-08-05 11:09:57
if exists (select name from sysobjects where name='pSaveForumSort' and type='p')
drop procedure pSaveForumSort
go
create procedure pSaveForumSort
@fSortCode varchar(20),
@fSortName varchar(50),
@fSortIcon varchar(50)
as
insert into tSort
(fSortCode,fSortName,fSortIcon)
values
(@fSortCode,@fSortName,@fSortIcon)
提问: 我想在存储过程中,返回插入的新数据的主键(即新插入数据的fSortGuid的值)

表tSort结构如下
字段 类型 默认值
fSortGuid uniqueidentifier newid() 为主键
fSortCode varchar(20)
fSortName varchar(20)
fSortIcon varchar(20)
答案一出,马上结贴!
另外小弟还有一事相求,
怎么把: 张三|李四|王五.............|....|...
拆成到一个列中??
...全文
108 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
turenjie 2005-08-09
  • 打赏
  • 举报
回复
thanks for you answer!
turenjie 2005-08-09
  • 打赏
  • 举报
回复
谢谢vivianfdlpw()!
turenjie 2005-08-05
  • 打赏
  • 举报
回复
谢谢 vivianfdlpw() !!!!!茅塞顿开!谢谢!!
我先试试,那在tSort表中的默认值newid(),要不要删除呢?

另外小弟还有一事相求,
怎么把: 张三|李四|王五.............|....|...
拆成到一个列中??

是这样的,
我要在该存储过程中,先对论坛类别进入插入,而且每个论坛都有多个版主,故想对关联表tSort_Host
进入插入!
关联表tSort_Host(fSortGuid,fHostGuid)

还得麻烦这位兄台帮我解决!


vivianfdlpw 2005-08-05
  • 打赏
  • 举报
回复
如果(fSortCode,fSortName,fSortIcon)唯一,可以
select fSortGuid from 表 where fSortCode=@fSortCode and fSortName=@fSortName and fSortIcon=@fSortIcon

如果不唯一,可以改一下你的存储过程:
declare @fSortGuid uniqueidentifier
set @fSortGuid=newid()
insert into tSort
(fSortGuid,fSortCode,fSortName,fSortIcon)
values
(@fSortGuid,@fSortCode,@fSortName,@fSortIcon)
vivianfdlpw 2005-08-05
  • 打赏
  • 举报
回复
declare @tb table(name varchar(10))
declare @str varchar(100)
set @str='张三|李四|王五'
while charindex('|',@str)>0
begin
insert @tb select left(@str,charindex('|',@str)-1)
set @str=stuff(@str,1,charindex('|',@str),'')
end
insert @tb select @str

select * from @tb

--结果
/*
name
----------
张三
李四
王五

(所影响的行数为 3 行)
*/
vivianfdlpw 2005-08-05
  • 打赏
  • 举报
回复
declare @tb table(name varchar(10))
declare @str varchar(100)
set @str='张三|李四|王五'
while charindex('|',@str)>0
begin
insert @tb select left(@str,charindex('|',@str)-1)
set @str=stuff(@str,1,charindex('|',@str),'')
end
insert @tb select @str

select * from @tb

--结果
/*
name
----------
张三
李四
王五

(所影响的行数为 3 行)
*/
vivianfdlpw 2005-08-05
  • 打赏
  • 举报
回复
declare @tb table(name varchar(10))
declare @str varchar(100)
set @str='张三|李四|王五'
while charindex('|',@str)>0
begin
insert @tb select left(@str,charindex('|',@str)-1)
set @str=stuff(@str,1,charindex('|',@str),'')
end
insert @tb select @str

select * from @tb

--结果
/*
name
----------
张三
李四
王五

(所影响的行数为 3 行)
*/
turenjie 2005-08-05
  • 打赏
  • 举报
回复
vivianfdlpw()兄弟,我结贴了!
你有时间,烦请你帮我解决一下上面的附加问题!

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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