动态 SQL 查询字符串截断为 256 个字符
Dynamic SQL query string truncated to 256 characters
我正尝试在 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 被 t运行 限制为 256 个字符。我已经按照下面文章中的说明修改了一些 SQL 服务器查询设置,但没有结果。参见:
能否请您指教,不确定我遗漏了什么,在我以前使用的 SQL Server 2008 中没有发生。 SQL Server 2016 中是否有其他设置?
问题是 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;
我正尝试在 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 被 t运行 限制为 256 个字符。我已经按照下面文章中的说明修改了一些 SQL 服务器查询设置,但没有结果。参见:
能否请您指教,不确定我遗漏了什么,在我以前使用的 SQL Server 2008 中没有发生。 SQL Server 2016 中是否有其他设置?
问题是 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;