我有一个长度为1,44,000的字符串,必须作为参数传递给存储过程,该存储过程是表上的选择查询.
当这是一个查询(在c#中)它的工作正常.但是,当我将它作为参数传递给存储过程时,它无法正常工作.
当这是一个查询(在c#中)它的工作正常.但是,当我将它作为参数传递给存储过程时,它无法正常工作.
这是我的存储过程,其中我已将此参数声明为NVARCHAR(MAX)
------------------------------------------------------ set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go CREATE PROCEDURE [dbo].[ReadItemData](@ItemNames NVARCHAR(MAX),@TimeStamp as DATETIME) AS select * from ItemData where ItemName in (@ItemNames) AND TimeStamp=@TimeStamp ---------------------------------------------------------------------
这里的参数@ItemNames是一个用不同名称连接的字符串,例如
“项目1”,“项目2”,“项目3” ….等.
谁能告诉我这里出了什么问题?
谢谢&问候
帕德玛
解决方法
从数据库语法的外观来看,它看起来像sql Server,these are the maximum sizes of things in Sql Server.
Bytes per short string column 8,000
可能是限制器.
虽然:
Bytes per varchar(max),
varbinary(max),xml,text,or image
column 2^31-1
(即2,147,483,647)表明sql Server会处理它,但是对于ado.net.