Set*_*thO 11 t-sql unicode casting
我刚刚继承了一个代码类似于以下(相当简单)示例的项目:
DECLARE @Demo TABLE
(
Quantity INT,
Symbol NVARCHAR(10)
)
INSERT INTO @Demo (Quantity, Symbol)
SELECT 127, N'IBM'
Run Code Online (Sandbox Code Playgroud)
我感兴趣的是N字符串文字之前.
我知道前缀N是指定编码(在本例中为Unicode).但由于select仅用于插入显然已经是Unicode的字段,因此该值不会自动向上转换吗?
我没有运行代码N,它似乎工作,但我错过了以前程序员的意图吗?或者是N他/她的疏忽?
我希望行为类似于我传递int给一个decimal字段时的行为(自动向上播放).我可以摆脱那些N吗?
SQL*_*ace 10
你的测试不是真的有效,尝试类似中文字符的东西,我记得如果你不加前缀它就不会插入正确的字符
例如,第一个显示问号而底部显示正方形
select '?'
select N'?'
Run Code Online (Sandbox Code Playgroud)
一个更好的例子,即使在这里输出也不一样
declare @v nvarchar(50), @v2 nvarchar(50)
select @v = '?', @v2 = N'?'
select @v,@v2
Run Code Online (Sandbox Code Playgroud)
既然你看起来像一个股票表为什么你使用unicode,甚至有unicode的符号..我从来没有见过任何,这包括ISIN,CUSIPS和SEDOLS