Sql server 在从存储过程-sql server创建的实体中创建增量列

Sql server 在从存储过程-sql server创建的实体中创建增量列,sql-server,Sql Server,我正在创建一个存储过程,它将从SQLServer中的两个表中为一个实体提供数据。两个表都没有主键。我需要我的视图有一个递增的列 到目前为止,我有: @iNodeLevel int, @iParentNodeId bigint AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUN

我正在创建一个存储过程,它将从SQLServer中的两个表中为一个实体提供数据。两个表都没有主键。我需要我的视图有一个递增的列

到目前为止,我有:

    @iNodeLevel int,
    @iParentNodeId bigint

AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    DECLARE @sQuery varchar (2000)

    IF @iNodeLevel >= 5

    RETURN

    ELSE

    -- Insert statements for procedure here
    SET @sQuery = 'SELECT * FROM DataView.dbo.Tree
    WHERE L' + CAST((@iNodeLevel + 1) AS VARCHAR(10)) + 'TID IS NULL
    AND L' + CAST((@iNodeLevel) AS VARCHAR(10)) + 'TID = ' + CAST((@iParentNodeId) AS VARCHAR(10))

    EXEC (@sQuery)
    --dbo.DV_GetTreeNodes 1,1
END


GO
来获取我想要的信息。我只想包括前面提到的递增列

如何做到这一点?

您可以使用:


这将根据myColumn的排序方式分配递增的值。

如果您使用的是SQL Server 2005+,则可以使用行号()模拟自动递增列。对不起,将编辑。。。意思是说存储过程。谢谢!这正是我需要的。。。唯一的问题是,我得到了一个错误:“函数‘ROW_NUMBER’必须有一个带有ORDER BY的OVER子句。”所以我所需要做的就是,“SELECT*,ROW_NUMBER()OVER(ORDER BY myColumn)…然后它工作得很好。我只是想明确地记录下我需要做什么,以防其他人遇到此问题。再次感谢!!!非常好,并感谢您对第一个查询问题的提示。我将删除它;在中留下一个不好的查询是没有意义的。
SELECT *, ROW_NUMBER() OVER (myColumn) AS IncrementedColumn
FROM TODS26_DataView.dbo.v_PowerSystemCIMTree
....