[英]Getting the identity value from a table with single identity column in FitNesse
FitNesse / dbFit是否支持插入具有單個標識列的表,然后將該值返回到變量中?
例如:
create table TestTable ( ID int identity(1,1) )
!|Insert|TestTable|
|ID? |
|>>TestID |
導致以下異常:
System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near ')'.
還有另一種方法可以做到這一點嗎?
您的問題不在於Fitnesse,而在於SQL引擎。 如果您在SQL Server Management Studio中嘗試相同的查詢,您將收到相同的錯誤。 因此,鑒於您不能真正在問題set identity_insert on
使用set identity_insert on
的限制,您真正需要問的是如何在SQL Server中獨立於Fitnesse插入沒有可插入字段的記錄? 此StackOverflow帖子提供了一個簡單的答案:
INSERT INTO #TempTable DEFAULT VALUES
掌握了這些之后,現在的任務是將其映射到Fitnesse。 這是一種解決方案:
!|execute|CREATE TABLE #TestTable ( ID int identity(1,1) )|
!|execute|INSERT INTO #TestTable DEFAULT VALUES|
!|query|SELECT TOP 1 @@IDENTITY [ID] FROM #TestTable|
|ID? |
|>>TestID |
Fitnesse的INSERT命令不支持默認構造,因此您必須切換到更通用的EXECUTE命令進行插入。 但是,該操作不會返回結果,因此您無法直接收集自動插入的ID值。 最終查詢為您提供了一種獲取剛插入的身份值的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.