私はそれが存在しない場合はチェック制約を作成するには、次のスクリプトを使用しています:TSQLを使用してチェック制約の最小値と最大値を取得する方法は?
if not exists (select * from dbo.sysobjects where id= object_id(N'[APA].[CK_APALog_APALogType_Range]') and OBJECTPROPERTY(id,N'IsConstraint')=1)
ALTER TABLE [APA].[APALog] ADD CONSTRAINT CK_APALog_APALogType_Range CHECK (APALogType >=1 AND APALogType <=3)
go
と制約について、私は必要ないくつかの情報をretreiveing次のクエリを持つ:
select constraintsColumns.COLUMN_NAME ,tableConstraints.CONSTRAINT_NAME ,tableConstraints.CONSTRAINT_TYPE ,tableConstraints.TABLE_NAME
from information_schema.TABLE_CONSTRAINTS tableConstraints
join information_schema.CONSTRAINT_COLUMN_USAGE constraintsColumns
on tableConstraints.TABLE_NAME=constraintsColumns.TABLE_NAME
and tableConstraints.CONSTRAINT_NAME =constraintsColumns.CONSTRAINT_NAME
where tableConstraints.CONSTRAINT_TYPE in ('CHECK') and constraintsColumns.COLUMN_NAME='APALogType'
を私はできません制約の作成で指定した値minimum
とmaximum
を取得することができます。
これはTSQL
を使用してこれらの値を取得できますか?
私は制約の定義を解析する必要があると思います。 SQL Serverは、最小値と最大値があることを「認識」していません。 –
@ Gordon Linoffどのように式を取得し、tsqlで解析することができましたか? – Karamafrooz