激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - sp_executesql 使用復雜的Unicode 表達式錯誤的解決方法

sp_executesql 使用復雜的Unicode 表達式錯誤的解決方法

2019-12-13 11:35MSSQL教程網 Sql Server

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 



變通一下,問題輕而易舉解決。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本成人一二三区 | 爱逼爱操综合网 | 欧洲成人免费视频 | 久久久久久久久浪潮精品 | 在线97视频| 欧美a∨亚洲欧美亚洲 | 亚洲精品午夜国产va久久成人 | 在线播放av网址 | 欧美 亚洲 视频 | 国产中出在线观看 | 欧美四级在线观看 | 一本视频在线观看 | 护士hd欧美free性xxxx | h久久| 亚洲国产精品久久久久久久久 | 成人毛片视频在线播放 | 黄色免费在线电影 | 黄网站在线免费看 | 国产精品久久久久久久久久三级 | 欧美久久久一区二区三区 | 日产精品久久久一区二区福利 | 欧美成人aaaaaaaa免费 | 国产一区精品在线观看 | 国产成人在线看 | 国产在线观看免费视频软件 | 久久久久久久久浪潮精品 | 91成人一区二区三区 | 91快色| 一区二区三区在线观看视频 | xxxxhdhdhdhd日本 | 妇子乱av一区二区三区 | 亚洲视屏 | 一级做a爱片毛片免费 | av免费大全| 激情综合网俺也去 | 嫩草影院在线观看网站成人 | 亚洲乱妇19p | 97精品国产高清在线看入口 | 成人午夜免费国产 | 91久久久国产精品 | 欧美伦理一区二区 |