有没有办法使用 ado.net 从 Sql 数据库中确定列的默认值?
我尝试使用SqlDataAdapter'sFillSchema方法:
using (SqlDataAdapter adapter = new SqlDataAdapter()) {
adapter.SelectCommand = myConnection.CreateCommand();
adapter.SelectCommand.CommandType = CommandType.Text;
adapter.SelectCommand.CommandText = "SELECT * FROM myTable";
DataTable table = new DataTable();
adapter.Fill(table);
adapter.FillSchema(table, SchemaType.Mapped);
}
Run Code Online (Sandbox Code Playgroud)
当我检查DataColumns中的 时DataTable,我可以确定一列是否为AutoIncrement,并且可以使用该AllowDBNull属性确定它是否允许空值。但是,DefaultValue(对于我知道有默认值的列)总是null.
我考虑过:
DataTable schemaTable = null;
using (SqlDataReader reader = adapter.SelectCommand.ExecuteReader(CommandBehavior.SchemaOnly)) {
schemaTable = reader.GetSchemaTable();
reader.Close();
}
Run Code Online (Sandbox Code Playgroud)
但DefaultValue不包含在架构中。
那么......我怎样才能得到一列的DefaultValue?
使用此查询来询问INFORMATION_SCHEMA您要查找的信息:
SELECT
TABLE_NAME, COLUMN_NAME, COLUMN_DEFAULT
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'your table name' AND
COLUMN_NAME = 'your column name'
Run Code Online (Sandbox Code Playgroud)
马克
| 归档时间: |
|
| 查看次数: |
5127 次 |
| 最近记录: |