技术开发 频道

SQL Server2005之SMO实战



七、默认的约束和主键
 
不象核对位于SMO层次的表层的约束,默认的约束是表列的属性。在本例中加了一个DefaultConstraint对象的列表,这些DefaultConstraint来源于每一个表的列。在向树加入表列之后,加入了DefaultConstraints列表。代码如下:

Dim aobjTableDefaultCons As New List(Of DefaultConstraint)

For Each objTableColumn As Column In objSMOTable.Columns
If Not IsNothing(objTableColumn.DefaultConstraint) Then
aobjTableDefaultCons.Add(objTableColumn.DefaultConstraint)
End If
   . . .
Next
 
在本例中处理主键和约束类似,主键主不是SMO表类的属性,我们可以通过对表的索引和查询每个索引的IndexKeyType属性来发现表的主键。如果一个索引的IndexKeyType设置为DriPrimaryKey,那么这个索引就是主键,或主键的一部分。下面的代码演示了如何判断一个索引是否为主键:

For Each objIndex As Index In objSMOTable.Indexes
   . . .
If objIndex.IndexKeyType = IndexKeyType.DriPrimaryKey Then
   . . .
' This index is the primary key for the table
   . . .
End If
   . . .
Next
0
相关文章