【发布时间】:2013-03-02 23:12:09
【问题描述】:
我正在从我的 ASP.NET 应用程序中调用一个存储过程。存储过程采用一个参数。我从我的 WEB 表单提供的值太大,以至于它没有完全加载到 sql server 的变量中。我的 sql 服务器参数的数据类型是 nvarchar(max),我的 ASP.NET 应用程序中的数据类型是字符串。 存储过程如下
Create procedure p_getProducts
@nm_emp nvarchar(max)
AS
BEGIN
select * from tblProduct where nm_user in(convert(nvarchar(max),@nm_emp));
END
请告诉我应该使用哪种 sql server 数据类型来解决这个问题。
谢谢。
【问题讨论】:
-
为什么要将变量转换为相同的数据类型?
-
你这里有逻辑问题。以这种方式传递的参数不能将自身扩展为 IN 值列表。您的查询将永远无法工作。 (至少如果@nm_emp 类似于 'joe','mark','steve' 则不会)
-
@steve,是的,我正在格式化 c# 中的值,例如 'joe'、'mark'、'steve' 并将其保存在变量中并将其传递给存储过程。它们运行良好,但是当参数中的文本大小增加时,就会产生问题
-
@jw 我已经通过消除转换进行了尝试,但问题仍然存在。
-
你确定吗?您是否尝试过使用多个名称并且结果包含两个名称?
标签: sql sql-server