Art*_*t F 0 sql t-sql sql-server stored-procedures
Declare @STAF_TO NVARCHAR(100)
Run Code Online (Sandbox Code Playgroud)
我有以下查询作为SQL Server存储过程的一部分:
SELECT @SF_TO = TP.FRST_NAME + ' ' + TP.MDLE_NAME + ' ' + TP.LAST_NAME
FROM tbl_Sf TS
INNER JOIN tbl_Pl TP ON (TS.POPL_PK = TP.POPL_PK)
WHERE TS.SF_PK = @ID
Run Code Online (Sandbox Code Playgroud)
我知道基于我在此之前插入的print语句,@ID它等于140(Type INT).当我尝试单独执行此查询时,它工作正常.
但是,当我尝试将其作为存储过程的一部分运行时,我收到以下错误:
消息8152,级别16,状态13,过程Proc_Name,行57
字符串或二进制数据将被截断.
第57行是SELECT语句在上面查询的位置.任何人都有任何想法为什么会发生这种情况?
编辑:我试图改变NVARCHAR(100)以NVARCHAR(200)和NVARCHAR(MAX),仍然得到了错误.此外,如果我单独运行它,查询工作正常(100个字符).
您的列的定义几乎可以肯定:
FRST_NAME
MDLE_NAME
LAST_NAME
Run Code Online (Sandbox Code Playgroud)
最多可添加98个字符(空格为+2).
我建议宣称@SF_TO大于NVARCHAR(100)(但确切地说,我不知道).
当然,错误消息很难解决问题.如果输出中包含更多细节,那将会很棒.请对此Connect项目进行投票/评论.
| 归档时间: |
|
| 查看次数: |
27624 次 |
| 最近记录: |