您的问题不在于 Fitnesse,而在于 SQL 引擎。如果您在 SQL Server Management Studio 中尝试相同的查询,您将收到相同的错误。因此,鉴于您不能使用您真正需要问的问题的限制是如何在 SQL Server 中独立于 Fitnesseset identity_insert on
插入没有可插入字段的记录?这篇 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 值。最后的查询为您提供了一种获取刚刚插入的标识值的方法。