最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

sp_executesql 使用復(fù)雜的Unicode 表達(dá)式錯(cuò)誤的解決方法

 更新時(shí)間:2012年01月20日 19:51:44   作者:  
sp_executesql 使用復(fù)雜的Unicode 表達(dá)式錯(cuò)誤的解決方法,需要的朋友可以參考下
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '+'.

當(dāng)你嘗試執(zhí)行下面這段代碼時(shí),會(huì)得到如上這個(gè)錯(cuò)誤提示。
復(fù)制代碼 代碼如下:

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


問(wèn)題出于不允許使用更復(fù)雜的 Unicode 表達(dá)式(例如使用 + 運(yùn)算符連接兩個(gè)字符串)??梢詤⒖迹?A target=_blank>http://technet.microsoft.com/zh-cn/library/ms188001.aspx
[ @statement = ] statement
包含 Transact-SQL 語(yǔ)句或批處理的 Unicode 字符串。statement 必須是 Unicode 常量或 Unicode 變量。不允許使用更復(fù)雜的 Unicode 表達(dá)式(例如使用 + 運(yùn)算符連接兩個(gè)字符串)。不允許使用字符常量。如果指定了 Unicode 常量,則必須使用 N 作為前綴。例如,Unicode 常量 N'sp_who' 是有效的,但是字符常量 'sp_who' 則無(wú)效。字符串的大小僅受可用數(shù)據(jù)庫(kù)服務(wù)器內(nèi)存限制。在 64 位服務(wù)器中,字符串大小限制為 2 GB,即 nvarchar(max) 的最大大小。

解決問(wèn)題,可以宣告一個(gè)變量如下代碼DECLARE @sql NVARCHAR(MAX),把帶動(dòng)態(tài)的數(shù)據(jù)名,表名或是字段的SQL語(yǔ)句賦值于這個(gè)變量, 然后用這個(gè)變量傳入sp_executesql中。
復(fù)制代碼 代碼如下:

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


變通一下,問(wèn)題輕而易舉解決。

相關(guān)文章

最新評(píng)論

财经| 惠州市| 丰台区| 蓬莱市| 廉江市| 太保市| 大兴区| 隆德县| 垣曲县| 古浪县| 吕梁市| 榆中县| 凌云县| 鹤山市| 延寿县| 东乡族自治县| 宁津县| 师宗县| 章丘市| 平谷区| 仪陇县| 大连市| 锦屏县| 白城市| 腾冲县| 乾安县| 广汉市| 山阴县| 项城市| 格尔木市| 武穴市| 西丰县| 双峰县| 兴海县| 北宁市| 兴安县| 格尔木市| 呼玛县| 广昌县| 济源市| 巫溪县|