try this:
if exists(select name from dbo.syscolumns where id=(select id from dbo.sysobjects where name='yrTableName') and name='yrFieldName')
select yrFieldName from yrTableName
可能我没说清楚,象select top n * from atable 这样的语句只能得出某个表的所有列,我是想象查找数据一样查找一个表是否包含指定的列(比如给出列的类型,名称);因为我遇到的问题要求把好几个表联合查询出来的数据修改后更新数据库,但在更新时,由于程序结构要求,此时只知道数据的列名类型,修改后的数据。所以需要确定不同的列各出自哪个表。
SqlDataAdapter da = new SQLDataAdapter("Select * from ATable where 1=0", YourSqlConnection);
DataSet ds = new DataSet();
da.Fill(ds, "ATable");
DataTable dt = ds.Tables["ATable"];
foreach(DataColumn dc in dt.Columns)
{
dc.ColumnName //列名
dc.DataType //类型
}