SQL 设置变量数据类型为VARCHAR超过8000个字符会怎样?
@Title VARCHAR(200)= ' ',
@IDS VARCHAR,
@Error VARCHAR(500)= ' ' OUTPUT
AS
SET @IDS= '1,2 '
IF @Title <> ' '
EXEC ( 'SELECT * FROM webflow..USERS WHERE [USERID] IN( '+@IDS+ ') AND ([NAME] LIKE ' '% '+@Title+ '% ' ' OR LOGONID= '+@Title+ ') ')
ELSE
EXEC ( 'SELECT * FROM webflow..USERS WHERE [USERID] IN( '+@IDS+ ') ')
RETURN @@ROWCOUNT
IF(@@ERROR <> 0)
SET @Error=@@ERROR
GO
如上代码中,我设置@IDS 变量为不指定长度VARCHAR类型,VARCHAR类型最大长度是8000,如果变量值超过8000个字符将会怎样?它会把超过8000后的字符串截取,保留前8000个字符的内容吗? 还有, 假如我把它设置为text类型,又提示说text不能用+进行连接..这种情况应如何解决?请赐教
作者: hzdtf 发布时间: 2007-06-21
ntext=varchar+varchar+...
没有实验过,理论上应该成立
作者: sky3324 发布时间: 2007-06-21
作者: echiynn 发布时间: 2007-06-21
超过8000会截断,也会有提示,看不同开发工具而定
作者: jwt1982 发布时间: 2007-06-21
如果变量超过8000个字符,通常是设计存储过程时多创建几个冗余的varchar(8000)类型的参数,
客户端调用存储过程时判断一下参数内容长度是否超过8000,若超过则拆开赋予其它冗余参数.
存储过程内对冗余参数进行判断,如果冗余参数不为空则连接该参数,例如:
作者: hellowork 发布时间: 2007-06-21
@Title VARCHAR(200)= ' ',
@IDS VARCHAR(8000), /*指明长度,否则为1*/
@Error VARCHAR(500)= ' ' OUTPUT
@IDS_1 varchar(8000) ' ', /*指定冗余参数,并设置默认值为 ' '*/
@IDS_2 varchar(8000) ' ' /*指定冗余参数,并设置默认值为 ' '*/
AS
----连接冗余参数
SET @IDS= @IDS +
case when @IDS_1 <> ' ' then @IDS_1 else ' ' end +
case when @IDS_2 <> ' ' then @IDS_2 else ' ' end
IF @Title <> ' '
EXEC ( 'SELECT * FROM webflow..USERS WHERE [USERID] IN( '+@IDS+ ') AND ([NAME] LIKE ' '% '+@Title+ '% ' ' OR LOGONID= '+@Title+ ') ')
ELSE
EXEC ( 'SELECT * FROM webflow..USERS WHERE [USERID] IN( '+@IDS+ ') ')
IF(@@ERROR <> 0)
SET @Error=@@ERROR
RETURN @@ROWCOUNT /*return应该放到最后,否则IF(@@ERROR <> 0)就永远不会被执行*/
GO
作者: hellowork 发布时间: 2007-06-21
CREATE PROCEDURE PR_SelectOnLoneHuman
@Title VARCHAR(200)= ' ',
@IDS VARCHAR(8000), /*指明长度,否则为1*/
@Error VARCHAR(500)= ' ' OUTPUT
@IDS_1 varchar(8000)= ' ', /*指定冗余参数,并设置默认值为 ' '*/
@IDS_2 varchar(8000)= ' ' /*指定冗余参数,并设置默认值为 ' '*/
AS
......
作者: hellowork 发布时间: 2007-06-21
超过的话应该会截取,如果不够用,可以设一个ntext,
ntext=varchar+varchar+...
没有实验过,理论上应该成立
===========================================================
真幽默.
作者: lang8134 发布时间: 2007-06-21
作者: penty125111 发布时间: 2007-06-21
作者: hui_hui_2007 发布时间: 2007-06-21
作者: sp4 发布时间: 2007-06-22
作者: LOVEJAVA2008 发布时间: 2011-01-31
作者: jinfengyiye 发布时间: 2011-01-31