考虑以下情况:
我有两个以逗号分隔的字符串,其中包含一些表主键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
是一个内置函数,可将逗号分隔的字符串转换为表格。
答案 0 :(得分:0)
为什么不直接更改ConvertCSVToBigIntTable以将标识列添加为它从CSV创建的表的ID列?
这样,您甚至不需要执行ROW_NUMBER,并且可以通过身份进行排序。