Я пишу сценарий, который будет генерировать столбец каждого типа данных в сервере sql. Я знаю, что sql-сервер рассматривает такие вещи, как десятичные (5,1) и десятичные (5,0), как разные типы данных, однако различные ресурсы, на которые я смотрел (w3schools и справочная страница Microsoft), не дают понять, это также относится к таким вещам, как: Двоичный (длина), или datetimeoffset (0-7) и т. д. Любое понимание было бы весьма полезно.Типы данных сервера Sql
ответ
Я бы сказал, что ответ немного неаккуратно.
С одной стороны, в SQL Server datatypes page четко проводится различие между «типами данных, сортировкой, точностью, масштабом или длиной».
Таким образом, это означает, что сопоставления, точность, масштаб или длина - все атрибуты, отличные от типа данных.
Однако та же страница также упоминает
Больших типов данных Значения: VARCHAR (макс), NVARCHAR (макс), и VARBINARY (макс)
Так что будет означать, что добавление max
в каком-то смысле изменяет тип данных. Затем у вас также есть случаи, такие как float(24)
, которые обрабатываются на SQL Server как отдельный тип данных real
.
Какова цель этого скрипта? Простое создание столбца каждого типа данных не является полезным для себя. Для чего это? Что имеет смысл для скрипта?
Я не уверен, откуда взялась эта информация.
SQL Server определяет десятичный (x, y) тип данных - точный цифровой тип данных. Разница заключается в количестве байтов, которые она использует, и это делает ее «рассматриваемой» числовой (5,1) и числовой (5,0) как разные типы данных. Основное различие заключается в том, что требуется операция с двумя числами (добавление или любое другое), SQL Server пытается адаптироваться к точности, которая должна учитывать правильный результат.
Почти то же самое должно происходить с бинарным (x). Когда операция выполняется между различными точками, вы должны получить точность, которая должна содержать правильный результат.
Datetimeoffset (0-7) должен следовать той же логике.
, если вы заинтересованы только с каждым типом данных в SQL Server, вы можете получить эту информацию от INFORMATION_SCHEMA.COLUMNS вы можете запустить этот скрипт:
use my_databas
go
SELECT distinct
DATA_TYPE ,
CHARACTER_MAXIMUM_LENGTH,
CHARACTER_OCTET_LENGTH,
NUMERIC_PRECISION , NUMERIC_SCALE
FROM INFORMATION_SCHEMA.COLUMNS
заказ по 1,2,3
Edit:
в таблице sys.types содержит строку для каждой системы и определяемого пользователем типа.
Следующий запрос получить все типы данных в SQL сервере
select *
from sys.types
order by name
Для десятичной/двоичных типов данных, хранилище на основе следующей таблицы:
Precision Storage bytes
1 - 9 5
10-19 9
20-28 13
29-38 17
ссылка: decimal and numeric
Прецизионность - это максимальное общее количество десятичных цифр, которое будет храниться как слева, так и справа от десятичной точки.
, например десятичной (5,1) (Precision 6) и десятичной (5,0) (Precision 5) имеют то же хранилище 5 байт каждый
Это вернет только типы данных существующих столбцов, а не все возможные типы данных в SQL Server, как я понимаю, вопрос. –
Я добавил дополнительную информацию, просмотрю свое редактирование. –
- 1. UA Типы данных сервера OPC
- 2. SQL alias типы данных
- 3. C типы # данных типов данных SQL Server
- 4. Как получить типы данных из запроса SQL-сервера Astyanax
- 5. Типы данных SQL Month Year
- 6. Типы данных SQL Server 2008
- 7. Типы данных SQL Server 2008
- 8. SQL Lite Типы данных - C#
- 9. SQL шифрования данных сервера
- 10. Таблица совместимости SQL (типы данных esp)
- 11. Типы данных NULL для SQL Server
- 12. Конкатенация SQL-сервера разных типов данных
- 13. Типы данных базы данных
- 14. SQL Server 2008 - Типы параметров UDF и типы возвращаемых данных
- 15. Базовые типы данных в SQL Server?
- 16. База данных SQL Server, содержащая типы
- 17. Определенные пользователем sql-типы данных в MySQL
- 18. Используются ли определенные пользователем типы данных SQL?
- 19. Типы данных децимал/int в SQL Server
- 20. Возврат Сложные типы данных в SQL-сервере
- 21. SQL Server - числовые и плавающие типы данных
- 22. Linq to Sql + пользовательские типы данных
- 23. Объединить типы данных в SQL Server
- 24. SQL скрипт базы данных сервера
- 25. «Потерянная» база данных SQL-сервера
- 26. SQL преобразования типов данных сервера
- 27. сценариев SQL базы данных сервера
- 28. Ошибка базы данных сервера Sql
- 29. sql backup базы данных сервера
- 30. Каковы эти типы данных?
Из https://msdn.microsoft.com/en-us/library/ms187746.aspx: «Для десятичных и числовых типов данных SQL Server рассматривает каждую конкретную комбинацию точности и масштаба как другой тип данных». То, что считается другим типом данных, я думаю, зависит от контекста (например, физического хранения, семантики). –
@ DanGuzman да, хорошая находка. –