我创建了一个存储过程,它有几个select语句,最后一个条件在@command中。因为我在c#运行这个。
CREATE PROCEDURE [dbo].[SearchList]
@command varchar(2000)
AS
BEGIN
SELECT *
FROM XYZ + CONVERT(varchar(2000), @command)
END
我总是出错
将varchar值“order by id desc”转换为数据类型int时,转换失败
DECLARE @return_value int
EXEC @return_value = [dbo].[SearchList]
@command = N' ORDER BY Id DESC'
SELECT 'Return Value' = @return_value
GO
输出返回一个列表,然后将其绑定到网格中。
2条答案
按热度按时间py49o6xq1#
不能混合使用动态sql和常规sql。您需要使整个过程成为动态sql:
m2xkgtsf2#
你可以试试下面的解决方案
方法2
或者对where子句和order by使用两个单独的变量,并使用以上的组合