What is the most appropriate data type for storing an IP address in SQL server?(在 SQL Server 中存储 IP 地址最合适的数据类型是什么?)
问题描述
最推荐在 SQL Server 中存储 IPv4 地址的数据类型是什么?
What should be the most recommended datatype for storing an IPv4 address in SQL server?
或者也许有人已经为它创建了一个用户 SQL 数据类型(.Net 程序集)?
我不需要排序.
推荐答案
将 IPv4 地址存储为 binary(4) 最忠实于它所代表的内容,并允许轻松进行子网掩码样式的查询.但是,如果您实际上是在文本表示之后,则需要进行输入和输出转换.在这种情况下,您可能更喜欢字符串格式.
Storing an IPv4 address as a binary(4) is truest to what it represents, and allows for easy subnet mask-style querying. However, it requires conversion in and out if you are actually after a text representation. In that case, you may prefer a string format.
一个很少使用的 SQL Server 函数,如果您将其存储为字符串可能会有所帮助 PARSENAME,顺便说一句.不是为 IP 地址设计的,但非常适合它们.下面的调用将返回14":
A little-used SQL Server function that might help if you are storing as a string is PARSENAME, by the way. Not designed for IP addresses but perfectly suited to them. The call below will return '14':
SELECT PARSENAME('123.234.23.14', 1)
(编号从右到左).
这篇关于在 SQL Server 中存储 IP 地址最合适的数据类型是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 SQL Server 中存储 IP 地址最合适的数据类型是什么?
基础教程推荐
- 如何使用 mysql.connector 禁用查询缓存 2022-01-01
- 是否可以执行按位分组功能? 2021-01-01
- 无法解决整理冲突 2021-01-01
- SSMS 中的权限问题:“对象 'extended_properties'、数据库 'mssqlsystem_resource'、... 错误 229)上的 SELECT 权限被拒绝" 2022-01-01
- SQL:使用来自具有相同列名的两个表中的数据... 2021-01-01
- 在 SQL 中连接多个表 2021-01-01
- 需要 MySQL 5.1 中的抽象触发器来更新审计日志 2021-01-01
- SQL Server 实例在登录协商期间返回无效或不受支持的协议版本 2021-01-01
- SQL 效率:WHERE IN 子查询 vs. JOIN 然后 GROUP 2021-01-01
- 将 SQL Server DateTime 列迁移到 DateTimeOffset 2021-01-01
