Здесь есть хороший пример для расчета расстояния с помощью PHP http://www.geodatasource.com/developers/php :
function distance($lat1, $lon1, $lat2, $lon2, $unit) {
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);
if ($unit == "K") {
return ($miles * 1.609344);
} else if ($unit == "N") {
return ($miles * 0.8684);
} else {
return $miles;
}
}
There are a number of ways:
EXEC sp_server_info 2
Or
SELECT @@version
Or
SELECT serverproperty('ProductVersion')
You Can Also do this:
DECLARE @ver nvarchar(128)
SET @ver = CAST(serverproperty('ProductVersion') AS nvarchar)
SET @ver = SUBSTRING(@ver, 1, CHARINDEX('.', @ver) - 1)
IF ( @ver = '8' )
SELECT 'SQL Server 2000'
ELSE IF ( @ver = '9' )
SELECT 'SQL Server 2005'
ELSE
SELECT 'Unsupported SQL Server Version'
More info at: http://blog.devstone.com/aaron/default,date,2006-12-15.aspx
Use
SELECT SERVERPROPERTY('EditionID')
or
SELECT SERVERPROPERTY('Edition')
to detect which version of SQLServer is running.
Это вернет 0, если это не так, и что-то ненулевое (здесь 126), если оно:
select charindex('Express Edition',@@version)
Пример в логическом контексте:
if (select charindex('Express Edition',@@version)) > 0
begin
print 'Express edition!'
end
else
begin
print 'Not Express edition!'
end
Вы можете использовать SERVERPROPERTY ('Edition')
, который вернет "Express Edition"
Что происходит в SQL Server Express, если вы не отслеживаете размер, а достигаете предела? Сначала предупреждения? События в журнале событий?
Если да, то лучше разрешить SQL Server выдавать предупреждения, а затем просто их прослушивать. То же самое может относиться к установке SQL Server Enterprise, если диск заполнен.