データベースが地理データ型と空間インデックスをサポートしているかどうかをプログラムで判断する必要があります。これらの機能は 2008 年に導入されました。これらの機能は CLR に依存しているため、CLR が有効になっているかどうかも確認する必要があります。これを行うための最も信頼できる方法は何ですか?
4 に答える
5
SQLServer2008は10.xです
SQLでSERVERPROPERTYを使用し、 sys.configurationsにクエリを実行できます
SELECT
PARSENAME(CAST(SERVERPROPERTY('ProductVersion') AS varchar(20)), 3) AS MajorVersion,
value_in_use
FROM
sys.configurations
WHERE
name = 'clr enabled';
編集:CASTを追加
于 2012-01-25T16:49:11.807 に答える
2
以下を解析します。
select @@VERSION
SELECT * FROM sys.configurations WHERE name = 'clr enabled'
SELECT compatibility_level from sys.databases where name=db_name()
お気に入り:
select
CASE
WHEN LEFT(@@VERSION,25)='Microsoft SQL Server 2008' THEN 'Yes'
ELSE 'NO'
END AS OnSQLServer2008
,CASE value
WHEN 0 THEN 'No'
ELSE 'Yes'
END AS [clr_enabled]
,(SELECT CASE compatibility_level WHEN 100 then 'Yes' ELSE 'No' END from sys.databases where name=db_name()) AS SQLServer2008CompatibilityMode
FROM sys.configurations
WHERE name = 'clr enabled'
出力:
OnSQLServer2008 clr_enabled SQLServer2008CompatibilityMode
--------------- ----------- ------------------------------
Yes No No
(1 row(s) affected)
于 2012-01-25T16:45:09.650 に答える
0
SELECT @@VERSION
かなり冗長な文字列を返すwhichを使用できます。
より簡単なのは、を使用してDB互換性レベルを確認することです。
select compatibility_level from sys.databases where name=db_name()
これは数値を返します。頻繁な値は次のとおりです。
80 = SQL Server 2000
90 = SQL Server 2005
100 = SQL Server 2008
これには、サーバー自体が特定のシステムバージョンを実行しているだけでなく、サーバー上のデータベースが必要なレベルにあることを確認するという追加の利点があります。
于 2012-01-25T16:50:29.190 に答える
0
下記のクエリを使用してください
SELECT
SERVERPROPERTY('ProductVersion') AS ProductVersion,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('EngineEdition') AS EngineEdition;
下記のバージョンについては、以下をご覧ください。
于 2012-01-25T17:19:03.743 に答える