Tôi có nên sử dụng binary(16)
hoặc varbinary(16)
không?Làm thế nào để lưu trữ cả IPv4 hoặc IPv6 trong cột đơn trong SQL Server?
Tôi biết tôi có thể sử dụng getAddress()
trong java.net.InetAddress
(Java) hoặc System.Net.IPAddress
(C#) để có được một đại diện byte[]
của cả hai IPv4
và IPv6
, nhưng nếu tôi cần phải chèn IPv4
tức binary(4)
vào một lĩnh vực binary(16)
trong SQL Server
, tôi cần lo lắng về padding hoặc bất cứ điều gì?
Vì tôi hy vọng phần lớn IP sẽ vẫn ở trong IPv4, nên tôi đoán phương sai (16) có ý nghĩa. – Henry
Và chi phí tạo trường có độ dài thay đổi – NullUserException
Để biết chi tiết chính xác chi phí, hãy xem http://msdn.microsoft.com/en-us/library/ms178085.aspx và/hoặc http://sqlskills.com/blogs/paul /post/Inside-the-Storage-Engine-Anatomy-of-a-record.aspx –