我试图弄清楚如何组合INSERT FROM SELECT并返回插入记录的id值。
INSERT INTO [someDB].[dbo].[OBJ] ( column1, column2, column3 )
OUTPUT inserted.ID (SELECT TOP 1 590675, column2, column3
FROM [someDB].[dbo].[OBJ] WHERE ID = 317817)
答案 0 :(得分:1)
如果您在INSERT
语句后尝试获取新ID,则可以使用SCOPE_IDENTITY, IDENT_CURRENT or @@IDENTITY。例如:
INSERT INTO [someDB].[dbo].[OBJ] ( column1, column2, column3 )
SELECT TOP 1
590675,
column2,
column3
FROM [someDB].[dbo].[OBJ] WHERE ID = 317817
ORDER BY ...
SELECT SCOPE_IDENTITY(); -- Last identity generated in current session and current scope
SELECT @@IDENTITY; -- Last identity generated in current session across all scopes
SELECT IDENT_CURRENT([someDB].[dbo].[OBJ]) -- Last identity generated for the given table in any session and any scope
因为您只插入一行,SCOPE_IDENTIY()
将是最好的方法。
希望它有所帮助。
答案 1 :(得分:0)
你的语法在这里有点不对。
你想:
text.getBytes()