1

我正在从我的 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 数据类型来解决这个问题。

谢谢。

4

1 回答 1

1

对于我从您的代码中可以假设的内容,您应该使用dynamic-sql而不是直接使用参数作为 IN 子句的值。试试这个过程。

Create procedure p_getProducts
      @nm_emp nvarchar(max)
AS
    BEGIN
    DECLARE @SQL NVARCHAR(MAX); 
    SELECT @SQL = N'select * from tblProduct where nm_user in(' + 
                  @nm_emp + N')'

    EXEC sp_executeSQL @SQL
于 2013-03-02T13:48:08.507 回答