关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

T-SQL字符串的N

发布时间:2020-01-07 18:06:37

 INSERT INTO [dbo].[Movies] ([ID], [Title], [ReleaseDate], [Genre], [Price])
 VALUES (1, N'苦逼程序员', N'2016-12-10 00:00:00', N'悲剧/喜剧', CAST(10.00 AS Decimal(18, 2)))
N 在这里表示 Unicode,就是双字节字符。对于西文字符,用一个字节来存储过足够了,对于中文字字符,就需要两个字节来存储。Unicode 为了统一、规范、方便、兼容,就规定西文字符也用两个字节来存储。
也就是说加 N 就表示字符串用 Unicode 方式存储。
但有时候加与不加都一样,又是什么原因呢?这是由于自动转换造成的。
比如:
declare @status nvarchar(20)
select @status = N’stopped’
select @status = ‘stopped’
实际上上述两句赋值的结果是一样的,因为变量类型就是 nvarchar(Unicode 类型)。
而有些地方(比如:sp_executesql 的参数)不能自动转换,所以需要加 N 了。
另外:cast()函数和convert()差不多!
它包括用AS关键字分隔的源值和目标数据类型,如SELECT CAST(‘123’ AS int) 返回值是整型值123。
decimal(18,2)
18指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。
2指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 18之间的值。默认小数位数是 0。


/template/Home/Zkeys/PC/Static