我正在尝试在SQL Server 2016中运行动态SQL,如下所示:
declare @SQL varchar(MAX);
set @SQL='SELECT top 1 * INTO Table 1 FROM
OPENROWSET(''Microsoft.ACE.OLEDB.12.0'', etc... (string aprox. 450 char)
EXECUTE sp_executesql @SQL;
由于某种原因,变量@SQL被截断为256个字符。我已经按照下面的文章中的说明修改了一些SQL Server查询设置但没有结果。参见:
你能告诉我,不知道我错过了什么,它在我以前用过的SQL Server 2008中没有发生过。 SQL Server 2016中是否有任何其他设置?
答案 0 :(得分:0)
问题是sp_executesql
使用nvarchar
,因此您应该声明@sql
,并SET @sql = N'....
:
DECLARE @SQL nvarchar(MAX);
SET @SQL = N'SELECT top 1 * INTO Table 1 FROM
OPENROWSET(''Microsoft.ACE.OLEDB.12.0'', etc... '
EXECUTE sp_executesql @SQL;