我正在使用Microsoft Visual Studio Express 2012用於Web開發MVC5應用程序。我想通過使用Dapper dot net得到最後插入的ID。我在這裏得到了解決方案,但他們正在研究SQL Server 2012(Management Studio),但是當我在代碼中運行查詢時,返回值是錯誤的。這裏是我已經嘗試過的代碼片段,以便最後插入ID使用Dapper Dot Net獲取最後插入的ID
SqlConnection _db = new SqlConnection("String");
string query_1 = @"DECLARE @InsertedRows AS TABLE (user_id int);Insert into users (stuff) OUTPUT Inserted.user_id INTO @InsertedRows values(@stuff); SELECT user_id FROM @InsertedRows";
string query_2 = @"Insert into users (stuff) OUTPUT Inserted.user_id values(@stuff);";
string query_3 = @"Insert into users (stuff) values(@stuff); SELECT SCOPE_IDENTITY()";
1. var id = _db.Query<int>(query_x, new { stuff = @stuff });
2. var id = _db.Execute(query_x, new { stuff = @stuff });
但在兩種情況下ID的值都是1但不是實際結果。但是當我在SQL管理工作室上運行相同的查詢時,一切都還好。請幫助解決這個問題。
'OUTPUT Inserted' **僅供參考,這可能比使用SCOPE_IDENTITY更慢,並在更新#5中修復爲SQL Server 2008 R2 Service Pack 1 ** – Kiquenet