Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server:在BIGINT列中存储INT可能会有问题吗?_Sql Server_Function_Types - Fatal编程技术网

Sql server SQL Server:在BIGINT列中存储INT可能会有问题吗?

Sql server SQL Server:在BIGINT列中存储INT可能会有问题吗?,sql-server,function,types,Sql Server,Function,Types,我有以下结构的映射表: CREATE TABLE MappingTable ( TableName SYSNAME, SrcId BIGINT, DstId BIGINT, PRIMARY KEY (Name, SrcId), UNIQUE (Name, DstId) ) SrcId和DstId是指两个相同数据库中的标识列,大多数列类型是INT,但有些是BIGINT,因此我将所有列存储为BIGINT 现在我想写一个函数来获取TableName和SrcI

我有以下结构的映射表:

CREATE TABLE MappingTable 
(
    TableName SYSNAME,
    SrcId BIGINT,
    DstId BIGINT,
    PRIMARY KEY (Name, SrcId),
    UNIQUE (Name, DstId)
)
SrcId和DstId是指两个相同数据库中的标识列,大多数列类型是INT,但有些是BIGINT,因此我将所有列存储为BIGINT

现在我想写一个函数来获取TableName和SrcId的DstId

所以我的问题很简单:我有什么理由实现两个函数,一个用于INT,另一个用于BIGINT

澄清一下:我读了我写的东西:当一个INT被写时,它读作INT,BIGINT也是如此

我是否有理由实现两个函数,一个用于INT,另一个用于BIGINT

答案很简单不,你只需要一个BIGINT函数, 例如:

这里有一个函数来说明这一点

我是否有理由实现两个函数,一个用于INT,另一个用于BIGINT

答案很简单不,你只需要一个BIGINT函数, 例如:

这里有一个函数来说明这一点


@Sami谢谢,我只是想确定……你不能做相反的事。这不完全是真的。您可以将bigint的值分配给int,前提是bigint的值不超过int的最大/最小值。例如。声明@bi bigint=1,@i int;设置@i=@bi;将运行良好。BigInt使用的存储空间是int的两倍,但由于存储空间现在非常便宜,我看不出有任何理由在这里使用两个映射表而不是一个。@Sami谢谢,我只是想确定……你不能做相反的事。这不完全是真的。您可以将bigint的值分配给int,前提是bigint的值不超过int的最大/最小值。例如。声明@bi bigint=1,@i int;设置@i=@bi;BigInt使用的存储空间是int的两倍,但由于目前存储空间非常便宜,我认为没有理由使用两个映射表而不是一个映射表。
DECLARE @BigInt BIGINT = 922337203685477580;
DECLARE @Int INT = 2147483647;

--SET @Int = @BigInt; this wont work, so your choice is BIGINT
SET @BigInt = @Int;
+-----------+--------------------------------------------------------------------------+---------+
| 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 |
+-----------+--------------------------------------------------------------------------+---------+