SQL表行顺序

时间:2013-04-24 09:18:58

标签: sql row-number

考虑以下情况:

我有两个以逗号分隔的字符串,其中包含一些表主键ID 变量'1,2,3,4''2,3,4'中的{@table1Ids@table2Ids}。

然后我有以下几行:

SELECT 
   ROW_NUMBER() OVER (ORDER BY GETDATE()) AS [ROW],
   ID 
INTO #table1Ids 
FROM ConvertCSVToBigIntTable(@table1Ids,',');

SELECT 
   ROW_NUMBER() OVER (ORDER BY GETDATE()) AS [ROW],
   ID 
INTO #table2Ids 
FROM ConvertCSVToBigIntTable(@table2Ids,',');

我这样做是为了从字符串值中获取两个表,这些表作为参数传递给SP。

#table1Ids#table2Ids中元组的顺序必须完整,因为它们是相互关联的。

我的问题是它们是否有可能出现故障。

请注意,ConvertCSVToBigIntTable是一个内置函数,可将逗号分隔的字符串转换为表格。

1 个答案:

答案 0 :(得分:0)

为什么不直接更改ConvertCSVToBigIntTable以将标识列添加为它从CSV创建的表的ID列?

这样,您甚至不需要执行ROW_NUMBER,并且可以通过身份进行排序。