我使用DataAdapter.FillSchema
检索从MS SQL表的架构。 不幸的是这不返回该列的默认值。 有没有一种方法来检索这个值作为方案的一部分,在一个快速和有效的方式,因为我需要检查数百个表?
谢谢!
我使用DataAdapter.FillSchema
检索从MS SQL表的架构。 不幸的是这不返回该列的默认值。 有没有一种方法来检索这个值作为方案的一部分,在一个快速和有效的方式,因为我需要检查数百个表?
谢谢!
缺省值是在仅行插入的时间来确定。
作为替代方案,您可以利用INFORMATION_SCHEMA
SELECT TABLE_NAME, COLUMN_NAME, COLUMN_DEFAULT
FROM AdventureWorks2012.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Person';
请尝试以下查询:
SELECT object_definition(default_object_id) AS definition
FROM sys.columns
WHERE name ='ColumnName'
AND object_id = object_id('TableName')
有没有办法可以使用FillSchema的做到这一点。 有关详细信息查看以下链接http://msdn.microsoft.com/en-us/library/229sz0y5.aspx
INFORMATION_SCHEMA是你应该看的地方。 INFORMATION_SCHEMA包含很多系统视图,可以显示你的数据库结构的细节。 例如
INFORMATION_SCHEMA.TABLES:你显示数据库中INFORMATION_SCHEMA.COLUMNS表的列表:显示你的数据库的所有表中的列及其属性的列表。 请看看更多细节以下位置。
http://msdn.microsoft.com/en-us/library/ms186778.aspx
要使用查询,您可以使用下面的查询获取默认值:
SELECT *
FROM INFORMATION_SCHEMA.Columns
WHERE TABLE_NAME = 'YourTableName'
你应该尝试这样的事情来检索表的模式。
public partial class Form1 : Form
{
//create connectionString variable
const string conString = @"Data Source=.\SQLEXPRESS; Initial Catalog=DBTest; Integrated Security=SSPI";
SqlConnection cn = null;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.getTableSchema();
}
//function to get the schemas from the Tables in MSSQLSERVER
private void getTableSchema()
{
try
{
cn = new SqlConnection(conString);
cn.Open();
//call the getSchema Method of the SqlConnection Object passing in as a parameter the schema to retrieve
DataTable dt = cn.GetSchema("tables");
//Binded the retrieved data to a DataGridView to show the results.
this.dataGridView1.DataSource = dt;
}
catch (Exception)
{
throw;
}
}
}
编辑:在conString关闭报价