SHR*_*SHR 1 sql-server types function
我有以下结构中的映射表:
CREATE TABLE MappingTable
(
TableName SYSNAME,
SrcId BIGINT,
DstId BIGINT,
PRIMARY KEY (Name, SrcId),
UNIQUE (Name, DstId)
)
Run Code Online (Sandbox Code Playgroud)
SrcId并且DstId指的Identity是2个相同数据库中的列,大多数列类型INT但是有些是BIGINT,因此我将所有列存储为BIGINT.
现在,我想写的功能得到DstId了TableName和SrcId.
所以我的问题很简单:我有没有理由实现2个功能,一个用于INT第二个用于第二个用于BIGINT?
澄清一下:我读了我写的内容:当写一篇文章的时候,INT它的内容是"读" INT,同样适用BIGINT.
我是否有任何理由实现2个功能,一个用于INT,第二个用于BIGINT?
对此的简单回答不,您只需要一个函数BIGINT,例如:
DECLARE @BigInt BIGINT = 922337203685477580;
DECLARE @Int INT = 2147483647;
--SET @Int = @BigInt; this wont work, so your choice is BIGINT
SET @BigInt = @Int;
Run Code Online (Sandbox Code Playgroud)
这里有一个test功能,使它非常清楚.
+-----------+--------------------------------------------------------------------------+---------+
| Data type | Range | Storage |
+-----------+--------------------------------------------------------------------------+---------+
| bigint | -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807) | 8 Bytes |
| int | -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647) | 4 Bytes |
+-----------+--------------------------------------------------------------------------+---------+
Run Code Online (Sandbox Code Playgroud)
看到 int, bigint, smallint, and tinyint