C# VS 2010查询生成器可以';t在Insert语句上解析作用域\u标识

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 =

我使用的SQL数据源如下:

<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()