对我所确定的是一个非常基本的问题抱歉。我刚刚潜入sql的深层并随时学习。
a)在存储过程(sql server 2012)中,如果我没有将其中一个返回值声明为主键,是否会创建一个?因为在我正在做的情况下,我没有计划一个密钥,并且没有一个字段可以用作一个。
b)如果我必须设置密钥,那么代码是什么?我可以卷入这个问题,如何通过SELECT每次运行都有一个计数器增量(因为如果我必须设置一个键,我可能会使用它)?
ETA
我刚刚看到了游标的概念,从中我认为你不需要管理系统的主要字段来保持其行的识别。
@L。 Klotz,因为你提供了一种制作密钥的方法:如果系统有自己的密钥,在什么情况下你会使用一个明确设置的密钥?
并且要清楚,我会把它放在下面吗?
ALTER PROCEDURE [dbo].[partsneed]
id INT PRIMARY KEY AUTO_INCREMENT
,@PartIDIN varchar(20)=0
,@COstatusIN char=0
,@QTYneedIN float=0
,@DateNeedIN date='1900/1/1'
,@QTYhrsIN float=0
答案 0 :(得分:0)
我不确定您为什么需要主键,但代码示例和进一步说明会有所帮助。您可以尝试以下方式:
SELECT
row_number() OVER (ORDER BY name) id
,[name]
FROM [mydb].[dbo].[names]
创建新的自动增量列。