Sql server MSSQL在从表中选择时创建临时标识列
我有一个临时表,从中选择所有记录。假设它看起来像这样:Sql server MSSQL在从表中选择时创建临时标识列,sql-server,Sql Server,我有一个临时表,从中选择所有记录。假设它看起来像这样: select * from #mytable row_Number() over (order by col1, col2) as myid 我需要向该选择添加一个临时标识字段。我环顾四周,提出了一些建议,包括以某种方式使用IDENTITY(1,1)关键字,或者只是创建一个如下所示的自动递增字段: select * from #mytable row_Number() over (order by col1, col2) as myi
select * from #mytable
row_Number() over (order by col1, col2) as myid
我需要向该选择添加一个临时标识字段。我环顾四周,提出了一些建议,包括以某种方式使用IDENTITY(1,1)关键字,或者只是创建一个如下所示的自动递增字段:
select * from #mytable
row_Number() over (order by col1, col2) as myid
但这并不能使列成为一个标识,它只是创建了一个唯一递增的字段
我知道应该有一个简单的解决办法,但我就是找不到
我只是想知道是否有可能创建一个密钥标识字段
在进行选择时
仅通过选择进入:
SELECT IDENTITY(INT,1,1) AS IdentityColumn
,*
INTO #Temp
FROM sys.databases
但不是通过简单的SELECT,因为IDENTITY只不过是一个列属性,它涉及专有的序列生成器,它只在INSERT上工作
我只是想知道是否有可能创建一个密钥标识字段
在进行选择时
仅通过选择进入:
SELECT IDENTITY(INT,1,1) AS IdentityColumn
,*
INTO #Temp
FROM sys.databases
但不是通过普通的SELECT,因为IDENTITY只不过是一个列属性,涉及专有的序列生成器,它只在INSERT上工作,您可以使用SELECT INTO
SELECT
IDENTITY (INT, 1, 1) AS NEW_ID, *
INTO #tempTable
FROM #mytable
SELECT * FROM #tempTable
您可以使用选择进入
SELECT
IDENTITY (INT, 1, 1) AS NEW_ID, *
INTO #tempTable
FROM #mytable
SELECT * FROM #tempTable
如果是临时表,只需在临时表创建中添加标识即可。该表是如何创建的?为什么需要添加标识列?如果你的问题是完整的,你会得到更好的答案。确定你的哪些字段实现了主键的功能,这样你就可以创建一个唯一的标识列。在这里,表的内容与我无关,我希望能够使用几个临时表和非临时表来实现这一点。我只是想知道在进行选择时是否可以创建密钥标识字段。我不想在创建初始表时添加标识。如果是临时表,只需在创建临时表时添加标识即可。表是如何创建的?为什么需要添加标识列?如果你的问题是完整的,你会得到更好的答案。确定你的哪些字段实现了主键的功能,这样你就可以创建一个唯一的标识列。在这里,表的内容与我无关,我希望能够使用几个临时表和非临时表来实现这一点。我只是想知道在进行选择时是否可以创建密钥标识字段。我不想在创建初始表时添加标识。