in括号内集合数超出108个报错,少于108个就能正常执行
USE [test_ZSdata]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[CRM_DeliveryOrdernVW_Search]
@Condition = N'DeliveryOrdernId in (111,111,111,111,111,111,111,111,111,111, 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111, 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111, 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111, 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111, 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
111,111,111,111,111,111,111,111,111,111)'
SELECT 'Return Value' = @return_value
GO
消息:消息 102,级别 15,状态 1,第 14 行
“111”附近有语法错误。
(1 行受影响)
应该是 @Condition
变量定义的长度不够
之前设定宽度500,没考虑到后面大批量数据集合
如果 IN 的集合比较大,建议用 IN 表变量(或临时表)来处理。表变量在批处理结束后会自动被清除。
楼上+1。
CREATE TYPE [dbo].[IntegerTableType] AS TABLE(
[Value] [int] NOT NULL
)
自定以表类型,这样处理很方便
什么数据库?
– dudu 6年前@dudu: SQL server 2014
– 大神带带我吧 6年前@大神带带我吧: 报什么错误?
– dudu 6年前@dudu: “111”附近有语法错误
– 大神带带我吧 6年前