Sql server 如何在NVARCHAR列数据库中保存INT

Sql server 如何在NVARCHAR列数据库中保存INT,sql-server,tsql,insert,Sql Server,Tsql,Insert,我有一个存储过程,它将INT参数保存到NVARCHAR列中 如果我这样做 DECLARE @VALORE AS INT SET @VALORE = 90 INSERT INTO TABLE (VALORE) VALUES(@VALORE) 因此,如果我从数据库中选择valore,我可以看到这一点 90.0000 你可以把它转换成一个NVARCHAR,但我不明白的是:为什么你首先要在NVARCHAR列中存储一个INT?为什么你会得到一个整数的90.000?整数没有十进制成分。无论是千位分隔符

我有一个存储过程,它将
INT
参数保存到
NVARCHAR
列中

如果我这样做

DECLARE @VALORE AS INT
SET @VALORE = 90

INSERT INTO TABLE (VALORE) VALUES(@VALORE)
因此,如果我从数据库中选择valore,我可以看到这一点

90.0000

你可以把它转换成一个
NVARCHAR
,但我不明白的是:为什么你首先要在
NVARCHAR
列中存储一个
INT
?为什么你会得到一个整数的
90.000
?整数没有十进制成分。无论
是千位分隔符还是小数点,您是否暗示要将格式化的数字存储为数据库中的字符串?如果是这样,跳过它-在表示层进行格式化,将数据保存在数据库中的正确类型中。始终使用最合适的数据类型-如果您的值是
INT
-您到底为什么要将其存储为
NVARCHAR
??如果它看起来像int,说话像int,闻起来像int-它是一个
int
,应该像这样存储。你确定VALORE不是数字或十进制吗?这是我能理解你为什么要拿回90.0000美元的唯一方法…这甚至不是一个问题。当您从数据库中选择时,您是说您想要还是不想要获得“90.0000”?查询时得到的结果与数据库中存储的内容有什么关系?
INSERT INTO TABLE (VALORE) VALUES(CAST(@VALORE AS VARCHAR(10))