试下这样有错吗 DECLARE @month NVARCHAR(100),@sql NVARCHAR(100) SET @month='1409,1410,1411' SET @sql='SELECT * FROM [CRMReporting].[dbo].[SplitToTable]('''+@month+''','','')''+' 附近有语法错误,提示的是+出错,只有前面这部分有+,可以先试下虽然我看了下感觉没有错,你原本的应用上下文是什么样子的呢
DECLARE @month NVARCHAR(100),@sql NVARCHAR(100) SET @month='1409,1410,1411' SET @sql='SELECT * FROM [CRMReporting].[dbo].[SplitToTable]('''+@month+''','','')' SET @SQL=REPLACE(@SQL,'''','''''') SET @sql='SELECT MAX(CAST(value AS INT)) FROM OPENQUERY([10.237.70.214],'''+@sql+''')' EXEC(@sql) 应该是这样子
DECLARE @month NVARCHAR(100),@sql NVARCHAR(100)
SET @month='1409,1410,1411'
SET @sql='SELECT * FROM [CRMReporting].[dbo].[SplitToTable]('''+@month+''','','')''+' 附近有语法错误,提示的是+出错,只有前面这部分有+,可以先试下虽然我看了下感觉没有错,你原本的应用上下文是什么样子的呢
2)把 @sql 长度扩大成 200
仍提示@sql附近有语法错误
我这边都成功了~
就那3行是没有问题的,但是我要拿这个动态sql去执行的
放在如下sql里就会报错
SELECT MAX(CAST(value AS INT)) FROM OPENQUERY([10.237.70.214], @sql)
感觉是同一个的话应该我这个已经修复了才对嘛
SET @month='1409,1410,1411'
SET @sql='SELECT * FROM [CRMReporting].[dbo].[SplitToTable]('''+@month+''','','')'
SET @SQL=REPLACE(@SQL,'''','''''')
SET @sql='SELECT MAX(CAST(value AS INT)) FROM OPENQUERY([10.237.70.214],'''+@sql+''')'
EXEC(@sql)
应该是这样子