Redian新闻
>
SQL server stored procedure 求助
avatar
SQL server stored procedure 求助# Database - 数据库
d*1
1
【 以下文字转载自 Music 讨论区 】
发信人: daydayup1 (咳咳), 信区: Music
标 题: 急问一个用NERO刻录CD的问题
发信站: BBS 未名空间站 (Thu May 6 23:29:55 2010, 美东)
我的经验的刻录古典音乐速度不能超过4X, 但是我现在电脑NERO的最低可选速度就是8X
, 怎么办?
在线等谢谢
avatar
wh
2
【 以下文字转载自 Literature 讨论区 】
发信人: airdragon77 (aid), 信区: Literature
标 题: 文海拾贝、四海为家联合举办《四海拾贝》征文活动
发信站: BBS 未名空间站 (Tue Sep 15 19:24:09 2009, 美东)
亲爱的朋友,在繁重而紧张的学习,工作,家务事之余,您在有时间可以休闲的时候,
会做些什么?
有人聚餐,有人踢球。有人打牌,有人魔兽。还有的人,选择TRAVEL。
外出旅行的朋友,是不是生活的压力和尘世的喧嚣,让你们每次归来时,都还来不及收
拾自己的心情,就要重新投入到忙碌的工作中去?你们有没有想过,每一程旅途,都是
一段独一无二的经历;而你们可以和大家分享的,也远不止怎么买机票便宜,哪些饭店
好吃,什么景点什么时候哪个角度的光线适合拍照?让我们给自己一些真正属于自己的
时间,来写下自己那时的心情。
平时不怎么出门的朋友们,你们是不是也想过,外面的世界会不会和主流媒体或者八卦
网站上描述的不完全一样?无论是人文的景点,还是自然的造化,他们之中,是不是也
能够读出诗请,也可以看出画意?你们是不是也想知道,外出旅
avatar
o*e
3
有一个很奇怪的数据库问题,还望高手相助。
数据库运行在web 服务器上,有一个stored procedure用来在user table生成新条目。
user table结构也很简单,主要的两个field是id和name,ID是一个identity field,
数据库自动生成的int。name是字符串,unique
stored procedure 如下:
=====================================
ALTER PROCEDURE [dbo].[AddUser]
@Name nvarchar(50),
@ID int out
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
insert into Customer
(name)
values (@Name);

set rowcount 1
select @ID=(select ID from Customer where [email protected]);
END
=====================================
要返回一个新条目的ID,这个ID后面要在服务器程序里用在其它地方。
奇怪的问题是,我测试的时候一切都没问题,但对有的用户,这个代码却总是返回数字
1。对sql server不是很懂,请高手指点,谢谢!
avatar
l*i
4
第一次听到这种说法 4x会怎样

8X

【在 d*******1 的大作中提到】
: 【 以下文字转载自 Music 讨论区 】
: 发信人: daydayup1 (咳咳), 信区: Music
: 标 题: 急问一个用NERO刻录CD的问题
: 发信站: BBS 未名空间站 (Thu May 6 23:29:55 2010, 美东)
: 我的经验的刻录古典音乐速度不能超过4X, 但是我现在电脑NERO的最低可选速度就是8X
: , 怎么办?
: 在线等谢谢

avatar
wh
5
发信人: DarkMatterER (小黑 - =||), 信区: Literature
标 题: Re: 文海拾贝、四海为家联合举办《四海拾贝》征文活动
发信站: BBS 未名空间站 (Wed Sep 16 02:01:42 2009, 美东)
亲爱的朋友,在繁重而紧张的学习,工作,家务事之余,您在有时间可以休闲的时候,
会做些什么?
avatar
a9
6
select @[email protected]@identity

【在 o****e 的大作中提到】
: 有一个很奇怪的数据库问题,还望高手相助。
: 数据库运行在web 服务器上,有一个stored procedure用来在user table生成新条目。
: user table结构也很简单,主要的两个field是id和name,ID是一个identity field,
: 数据库自动生成的int。name是字符串,unique
: stored procedure 如下:
: =====================================
: ALTER PROCEDURE [dbo].[AddUser]
: @Name nvarchar(50),
: @ID int out
: AS

avatar
L*k
7
need to find out your CD/DVD writer model.
then try to see if you can flash your firmware.
have you tried other software?
it's actually easier on Linux to find out the
write speed support

8X

【在 d*******1 的大作中提到】
: 【 以下文字转载自 Music 讨论区 】
: 发信人: daydayup1 (咳咳), 信区: Music
: 标 题: 急问一个用NERO刻录CD的问题
: 发信站: BBS 未名空间站 (Thu May 6 23:29:55 2010, 美东)
: 我的经验的刻录古典音乐速度不能超过4X, 但是我现在电脑NERO的最低可选速度就是8X
: , 怎么办?
: 在线等谢谢

avatar
s*l
8
这个活动蛮好的

【在 wh 的大作中提到】
: 发信人: DarkMatterER (小黑 - =||), 信区: Literature
: 标 题: Re: 文海拾贝、四海为家联合举办《四海拾贝》征文活动
: 发信站: BBS 未名空间站 (Wed Sep 16 02:01:42 2009, 美东)
: 亲爱的朋友,在繁重而紧张的学习,工作,家务事之余,您在有时间可以休闲的时候,
: 会做些什么?

avatar
o*e
9
Thanks a lot!
如果不是太复杂的话,能简单说说为啥insert之后的query返回的ID不是数据库里真正
的ID么?

【在 a9 的大作中提到】
: select @[email protected]@identity
avatar
L*k
10
高速刻录的盘片,如果播放器的转盘不好容易有爆音。

【在 l****i 的大作中提到】
: 第一次听到这种说法 4x会怎样
:
: 8X

avatar
s*n
11
我已经很久不敢看四海为家版了……

【在 wh 的大作中提到】
: 【 以下文字转载自 Literature 讨论区 】
: 发信人: airdragon77 (aid), 信区: Literature
: 标 题: 文海拾贝、四海为家联合举办《四海拾贝》征文活动
: 发信站: BBS 未名空间站 (Tue Sep 15 19:24:09 2009, 美东)
: 亲爱的朋友,在繁重而紧张的学习,工作,家务事之余,您在有时间可以休闲的时候,
: 会做些什么?
: 有人聚餐,有人踢球。有人打牌,有人魔兽。还有的人,选择TRAVEL。
: 外出旅行的朋友,是不是生活的压力和尘世的喧嚣,让你们每次归来时,都还来不及收
: 拾自己的心情,就要重新投入到忙碌的工作中去?你们有没有想过,每一程旅途,都是
: 一段独一无二的经历;而你们可以和大家分享的,也远不止怎么买机票便宜,哪些饭店

avatar
a9
12
传进去的是name是null,结果返回第1行了?不知道,呵呵。

【在 o****e 的大作中提到】
: Thanks a lot!
: 如果不是太复杂的话,能简单说说为啥insert之后的query返回的ID不是数据库里真正
: 的ID么?

avatar
wh
13
为啥?

【在 s***n 的大作中提到】
: 我已经很久不敢看四海为家版了……
avatar
o*e
14
传进去的应该不是null,我测试的时候一切正常,但国内的用户注册的时候就有这个问
题。用的是godaddy的shared hosting plan,不知道和host server是不是也有关系。

【在 a9 的大作中提到】
: 传进去的是name是null,结果返回第1行了?不知道,呵呵。
avatar
l*a
15
你写这最拿手了。 写完后记得转过来给我看看:)

【在 wh 的大作中提到】
: 为啥?
avatar
a9
16
godaddy很多ip都被国内封了,你的还活着?
你加上点log跟踪下问题呀。按道理在你贴的几句里看不出问题。
顶多是没有防重入的处理。
你有唯一索引吗?你上面有赋值吗?如果有唯一索引,插入不进去的处理有吗?

【在 o****e 的大作中提到】
: 传进去的应该不是null,我测试的时候一切正常,但国内的用户注册的时候就有这个问
: 题。用的是godaddy的shared hosting plan,不知道和host server是不是也有关系。

avatar
c*h
17

有人要私奔

【在 l**a 的大作中提到】
: 你写这最拿手了。 写完后记得转过来给我看看:)
avatar
o*e
18
弄了个独立IP,so far so good
查了log,又有国内的用户遇到这个错误了。刚想起来,ID虽然设的是identity,但起
始数字是100,不是1,估计是这个问题,不知道怎么处理?谢谢!

【在 a9 的大作中提到】
: godaddy很多ip都被国内封了,你的还活着?
: 你加上点log跟踪下问题呀。按道理在你贴的几句里看不出问题。
: 顶多是没有防重入的处理。
: 你有唯一索引吗?你上面有赋值吗?如果有唯一索引,插入不进去的处理有吗?

avatar
l*a
19
我竟然忘写了一个字! 不过幸好不是写错别字, 哈哈。

【在 c*******h 的大作中提到】
: 哇
: 有人要私奔

avatar
o*e
20
弄了个独立IP,so far so good
查了log,又有国内的用户遇到这个错误了。刚想起来,ID虽然设的是identity,但起
始数字是100,不是1,估计是这个问题,不知道怎么处理?谢谢!

【在 a9 的大作中提到】
: godaddy很多ip都被国内封了,你的还活着?
: 你加上点log跟踪下问题呀。按道理在你贴的几句里看不出问题。
: 顶多是没有防重入的处理。
: 你有唯一索引吗?你上面有赋值吗?如果有唯一索引,插入不进去的处理有吗?

avatar
c*h
21
好像还有内幕啊。

【在 l**a 的大作中提到】
: 我竟然忘写了一个字! 不过幸好不是写错别字, 哈哈。
avatar
a9
22
估计不是这个问题?

【在 o****e 的大作中提到】
: 弄了个独立IP,so far so good
: 查了log,又有国内的用户遇到这个错误了。刚想起来,ID虽然设的是identity,但起
: 始数字是100,不是1,估计是这个问题,不知道怎么处理?谢谢!

avatar
wh
23
我正想写cape cod呢,被素问一说,不敢去征文了,损失5个包子。素问赔。

【在 l**a 的大作中提到】
: 我竟然忘写了一个字! 不过幸好不是写错别字, 哈哈。
avatar
j*7
24
Have to say @@identity is a BAD thing to use since it can return wrongID if
there is a trigger involved. ALWAYS use scope_identity() function.
avatar
wh
25
他大概想写“我们”,漏写了一个“们”字。

【在 c*******h 的大作中提到】
: 好像还有内幕啊。
avatar
g*l
26
既然NAME是UNIQUE,为什么要set rowcount 1呢,IDENTITY可能也会有问题
avatar
l*a
27
为什么不写啊? 不要理素问小朋友, 哈哈。

【在 wh 的大作中提到】
: 我正想写cape cod呢,被素问一说,不敢去征文了,损失5个包子。素问赔。
avatar
o*e
28
是很奇怪,我昨晚弄了个script,生成了100个id 1-100的记录,但用stored proc生成
的用户还是返回id是1 (用@@identity返回的值)。早先改成了scope_identity(),看
看有没有帮助

【在 a9 的大作中提到】
: 估计不是这个问题?
avatar
o*e
29
恩,这个是比较多余,不过应该不会导致返回的id出错吧?

【在 g***l 的大作中提到】
: 既然NAME是UNIQUE,为什么要set rowcount 1呢,IDENTITY可能也会有问题
avatar
o*e
30
thanks,i just made the change this morning, will see if this can fix the
issue.

if

【在 j*******7 的大作中提到】
: Have to say @@identity is a BAD thing to use since it can return wrongID if
: there is a trigger involved. ALWAYS use scope_identity() function.

avatar
j*7
31
还有“set rowcount 1“ 一般是根本不会用的.会有奇怪的副作用。
avatar
o*e
32
scope_identity() did the trick! Thank you all for your help!!!
avatar
b*a
33
@@IDENTITY returns the most recently created identity for your current
connection, not necessarily the identity for the recently added row in a
table. You could have a situation where there is a trigger that inserts a
new record in a Logs Table, for example, when your Stored Procedure or
INSERT SQL Statement inserts a record in the Orders Table. If you use @@
IDENTITY to retrieve the identity of the new order, you will actually get
the identity of the record added into the Log Table and not the Orders Table
, which will create a nasty, nasty bug in your data access layer.
To avoid the potential problems associated with someone adding a trigger
later on, always use SCOPE_IDENTITY() to return the identity of the recently
added row in your INSERT SQL Statement or Stored Procedure.
avatar
a9
34
我不觉得解决了实际问题。
要不然,你原来用用户名select的时候应该不会出问题。

【在 o****e 的大作中提到】
: scope_identity() did the trick! Thank you all for your help!!!
avatar
j*7
35
Do you have UNIQUE constraint defined on the Name column?
avatar
o*e
36
各位老大,我有罪,浪费大家的时间了。今天早上才发现服务器上的stored proc有个
很愚昧的bug,应该是“@ID int out”的,居然错成“@ID bit out”,所以之前的“@
ID=(select ID from Customer where [email protected]);”也好,“@@identity”也好,都
返回1了。不知道为啥SCOPE_IDENTITY() 居然能返回一个int。
我用了linq to sql调用stored proc,开发环境里的stored proc是对的,所以一直没
发现这个错,汗
btw name column 是有unique constraint的。
再次感谢各位老大的热心回复。
avatar
a9
37
奇怪啊,从大往小转是怎么truncate的?
我怎么print cast(x as bit) 除了0都是返回1?

【在 o****e 的大作中提到】
: 各位老大,我有罪,浪费大家的时间了。今天早上才发现服务器上的stored proc有个
: 很愚昧的bug,应该是“@ID int out”的,居然错成“@ID bit out”,所以之前的“@
: ID=(select ID from Customer where [email protected]);”也好,“@@identity”也好,都
: 返回1了。不知道为啥SCOPE_IDENTITY() 居然能返回一个int。
: 我用了linq to sql调用stored proc,开发环境里的stored proc是对的,所以一直没
: 发现这个错,汗
: btw name column 是有unique constraint的。
: 再次感谢各位老大的热心回复。

avatar
o*e
38
是很莫名其妙,或许是godaddy的sql server 2005哪里设置有问题。用stored proc之
前我一直用linq to sql直接操作数据库,很变态的是每1,2个星期服务器代码就报错
,“row not found or changed”,要手工reset iis才能恢复。现在把修改添加记录的
代码全换成stored proc,好像没有这个问题了。

【在 a9 的大作中提到】
: 奇怪啊,从大往小转是怎么truncate的?
: 我怎么print cast(x as bit) 除了0都是返回1?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。