Что такое платформа () в SQL Server 2008 - PullRequest
0 голосов
/ 13 июня 2018

Может кто-нибудь объяснить, что platform() делает в SQL Server 2008?

Ответы [ 2 ]

0 голосов
/ 14 июня 2018

Из хранимых процедур MSDB он используется для определения того, какой SKU Windows используется сервером:

IF ((PLATFORM() & 0x1) = 0x1) -- NT

IF ((PLATFORM() & 0x2) = 0x2) -- Win9x

/* check that local server is not running a desktop SKU */
if( PLATFORM() & 0x100 = 0x100 ) -- Win9x, Office, or MSDE

Обратите внимание, что это недокументированная внутренняя функция MS, поэтому она не рекомендуетсядля использования в коде пользователя

0 голосов
/ 13 июня 2018

На основании эта ссылка в октябре 2017 года PLATFORM() все еще находится в разработке независимо от того, так ли это до сих пор, я не смог ничего найти об этом в быстром поиске в Google.

Похоже, что PLATFORM() похоже на @@VERSION, как цитата из Эрланда по ссылке выше

Когда я тестировал его в своей базе данных Azure (базовая версия), он возвращает1029, то есть то же значение, которое возвращается на любом 64-битном экземпляре, который я пробовал.На моих экземплярах SQL 2000 и SQL7, которые являются 32-разрядными и работают под управлением 32-разрядных операционных систем (я думаю) на 64-разрядном виртуальном оборудовании, он возвращает 1025. Функция недоступна в SQL 6.5.

значение, очевидно, является некоторой битовой маской.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...