我想下面的存储过程转换成一个查询,这样我就可以在SQL Server CE将存储过程转换为查询(SQL Server Compact)?
USE TestResults
GO
CREATE PROCEDURE uspInsertNewTest
(@DeviceSerialNumber nvarchar(50),
@DeviceType nvarchar(50),
@ElapsedTime int)
AS
BEGIN
INSERT INTO [TestResults].[dbo].[Tests]([Date], [Device], [DeviceType], [ExecutionTimeMs])
OUTPUT INSERTED.TestId
VALUES (GETDATE(), @DeviceSerialNumber, @DeviceType, @ElapsedTime)
END
GO
使用它从上面的脚本,所有我能理解是,它需要三个输入参数
- DeviceSerialNumber
- 设备类型
- ElapsedTime
,但它会更新表Tests
中的5列,包括Date
和TestId
。
既然不能使用SQL Server CE的存储过程,我已经转换上面的脚本到一个查询字符串,
string queryString = "INSERT INTO Tests ([Date], [Device], [DeviceType], [ExecutionTimeMs]) VALUES (@Date, @DeviceSerialNumber, @DeviceType, @ElapsedTime)"
现在如何将OUTPUT INSERTED.TestId
到字符串(queryString
)?
有一个类似的问题here,但它并不能帮助我的问题
谢谢!
您可以改为使用[SQL Server Express](http://www.microsoft.com/en-gb/server-cloud/products/sql-server-editions/sql-server-express.aspx)。 – Tanner 2014-10-22 10:50:41
是的,那已经可用了,但我正在寻找在SQL CE中提供解决方案。 – SanVEE 2014-10-22 10:52:19
您可以在INSERT后立即使用SELECT @@ IDENTITY来返回TestId,假设这是一个标识列? – 2014-10-22 10:57:17