gpt4 book ai didi

sp_executesql 使用复杂的Unicode 表达式错误的解决方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章sp_executesql 使用复杂的Unicode 表达式错误的解决方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

Msg 102, Level 15, State 1, Line 3  Incorrect syntax near '+'.  当你尝试执行下面这段代码时,会得到如上这个错误提示。  。

复制代码代码如下

DECLARE @MyName NVARCHAR(100)  DECLARE @FieldName SYSNAME = N'Name'  EXECUTE sp_executesql N'SELECT TOP 1 @OutputName = ['+ @FieldName +'] FROM [dbo].[Member]',  N'@OutputName NVARCHAR(100) OUTPUT',  @MyName OUTPUT;  SELECT @MyName  。

问题出于不允许使用更复杂的 Unicode 表达式(例如使用 + 运算符连接两个字符串)。可以参考:http://technet.microsoft.com/zh-cn/library/ms188001.aspx  [ @statement = ] statement  包含 Transact-SQL 语句或批处理的 Unicode 字符串。statement 必须是 Unicode 常量或 Unicode 变量。不允许使用更复杂的 Unicode 表达式(例如使用 + 运算符连接两个字符串)。不允许使用字符常量。如果指定了 Unicode 常量,则必须使用 N 作为前缀。例如,Unicode 常量 N'sp_who' 是有效的,但是字符常量 'sp_who' 则无效。字符串的大小仅受可用数据库服务器内存限制。在 64 位服务器中,字符串大小限制为 2 GB,即 nvarchar(max) 的最大大小。  解决问题,可以宣告一个变量如下代码DECLARE @sql NVARCHAR(MAX),把带动态的数据名,表名或是字段的SQL语句赋值于这个变量, 然后用这个变量传入sp_executesql中。  。

复制代码代码如下

DECLARE @MyName NVARCHAR(100)  DECLARE @FieldName SYSNAME = N'Name'  DECLARE @sql NVARCHAR(MAX) = N'SELECT TOP 1 @OutputName = ['+ @FieldName +'] FROM [dbo].[Member]'  EXECUTE sp_executesql @sql,  N'@OutputName NVARCHAR(100) OUTPUT',  @MyName OUTPUT;  SELECT @MyName  。

变通一下,问题轻而易举解决.

最后此篇关于sp_executesql 使用复杂的Unicode 表达式错误的解决方法的文章就讲到这里了,如果你想了解更多关于sp_executesql 使用复杂的Unicode 表达式错误的解决方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com