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。
Copyright © 2004-2024 Ynicp.com 版权所有 法律顾问:建纬(昆明)律师事务所 昆明市网翼通科技有限公司 滇ICP备08002592号-4