-1

我需要将左连接查询的结果添加到没有将其索引设置为标识的表中,但 int 仍然必须是唯一的。我的插入查询如下所示:

INSERT INTO Table1 (S.SubjectID, S.Subject, S.SubjectDescription, S.Status)
SELECT (Select MAX(SubjectID) FROM Table1) + ???? , N.Code, N.Literal, N.Trans
FROM  Table2 N LEFT JOIN Table1 S ON N.Code = S.Subject   
WHERE (N.Code IS NULL OR S.Subject IS NULL OR N.Trans = 'D')

我哪里有???是我需要有一些递增值的地方,以便在插入 table1 时,ID 将是唯一的。

我不允许更改表格的结构,我只需要一些可以即时计算他的东西。

一如既往的帮助,非常感谢提示和参考。

4

1 回答 1

1

在大多数数据库中,您可以row_number()用于此目的。下面是一个 SQL Server 语法示例:

INSERT INTO Table1 (S.SubjectID, S.Subject, S.SubjectDescription, S.Status)
SELECT (Select MAX(SubjectID) FROM Table1) + row_number() over (order by (select NULL)) ,
       N.Code, N.Literal, N.Trans
FROM  Table2 N LEFT JOIN Table1 S ON N.Code = S.Subject   
WHERE (N.Code IS NULL OR S.Subject IS NULL OR N.Trans = 'D')
于 2013-04-22T14:35:31.370 回答