C# VS 2010查询生成器可以';t在Insert语句上解析作用域\u标识
我使用的SQL数据源如下:C# VS 2010查询生成器可以';t在Insert语句上解析作用域\u标识,c#,sql,query-builder,C#,Sql,Query Builder,我使用的SQL数据源如下: <asp:sqldatasource id="sds_sale" runat="server" connectionstring="<%$ ConnectionStrings:TestServerConnection %>" InsertCommand="INSERT INTO Sale (transactionID, salePrice) VALUES (@transactionID,@salePrice) SET @Identity =
<asp:sqldatasource id="sds_sale" runat="server" connectionstring="<%$ ConnectionStrings:TestServerConnection %>"
InsertCommand="INSERT INTO Sale (transactionID, salePrice) VALUES (@transactionID,@salePrice) SET @Identity = SCOPE_IDENTITY()">
<InsertParameters>
<asp:Parameter Name="transactionID" />
<asp:Parameter Name="salePrice" />
</InsertParameters>
</asp:sqldatasource>
我想返回作用域标识,但查询生成器说它无法解析SQL语句。我做错了什么?您可以用这一行替换第三行:
SELECT @Identity = SCOPE_IDENTITY()
编辑)
您可以查看SQL profiler以查看发送到SQL Server的语句,并且可以更轻松地调试它考虑使用常规的
SqlCommand
,但是我的所有内容都是这样设置的。是否需要将@Identity
作为输出参数发送进来。在任何地方都看不到您声明它。很容易开始使用SQL上的许多抽象之一。与数据源类似,但也与Linq2Sql或Entitiy框架类似。当你遇到抽象的局限性时,你必须绕过它们,或者切换到真实的事物。
SELECT @Identity = SCOPE_IDENTITY()