我希望获得由于该声明而声明插入的记录的ID。我知道SELECT LAST_INSERT_ID();
但不能在我的场景中使用它,因为LAST_INSERT_ID()
在每个连接的基础上工作,我目前在我的框架中使用一个方便的函数来访问db - 但这方便意味着连接仅在执行该语句期间存在 - 所以我想知道是否存在标题中显示的Microsoft SQL Server中的语法?
在我的环境中,我正在构建命令,如下所示:
INSERT INTO Bookings (Status,YEarlyBird,YDays,YHotel,YBanquet,Name,Company,Address,Town,Region,Postcode,CountryCode,Second
Name,SecondEmail,RoomType,SpouseMealPlan,Notes,Conference_VAT,Accommodation_VAT,Conference_id,InvoiceAmount,Conferen
ceGross,Accomodation,SpouseGross,SpouseNet,TotalGross,TotalNet,ConferenceNet,Courses) VALUES (:<C1:,:<C1:,:<C6:,:<C
6:,:<C1:,:<C12:,:<C28:,:<C15:,:<C7:,:<C5:,:<C5:,:<C2:,:<C1:,:<C1:,:<C15:,:<C3:,:<C1:,:<F:,:<F:,:<I:,:<F:,:<F:,:<F:,:
<F:,:<F:,:<F:,:<F:,:<F:,:<C1:);SELECT LAST_INSERT_ID();
(&lt;: - stuff是绑定变量的占位符)
如果单独运行INSERT,它就可以运行。如果我按照所示附加SELECT LAST_INSERT_ID()
,我会得到:
[MySQL][ODBC 5.3(w) Driver][mysqld-5.7.18-log]You have an error in your SQL syntax; check the manual that corresponds to y
our MySQL server version for the right syntax to use near 'SELECT LAST_INSERT_ID()' at line 1
P.S:使用这种方便的方式访问数据库在我的用例中完全没问题,因为数据库只写了一次 - 完全与我正在处理的语句一致。