您的位置:首页 > 其它

一下子给所有表增加一个字段

2010-11-20 15:04 204 查看
其实原理很简单,先检查数据库的每个表~是否存在这个字段如果存在的话就把他删除,最后就循环所有表,添加需要添加的字段!

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
//sysobjects和syscolumns是系统表,可以select来看看
//要增加的是F_Companyid表数据类型是int
namespace xiugaibiao {
class Program {
static void Main(string[] args) {
string AddTableName = "F_Companyid";
string AddTableType = "int";
string str = "";
string StrSQL = "";
string Table_Id = "";
string i_1 = "";
int i_2 = 0;
string Con_Str = @"server=.;database=DbName;uid=sa;pwd=sa";
SqlConnection Con = new SqlConnection(Con_Str);
SqlCommand Com = new SqlCommand();
Com.Connection = Con;
Con.Open();
//循环得到所有表名
Com.CommandText = @"select * from sysobjects where xtype = 'u' order by name";
SqlDataReader Dr = Com.ExecuteReader();
while (Dr.Read()) {
str += Dr["name"].ToString()+",";
Table_Id += Dr["id"].ToString() + ",";
}
Con.Close();
//查看是否有要增加的字段
Table_Id = Table_Id.Substring(0, Table_Id.Length - 1);
string[] Table_Id_Name = Table_Id.Split(',');
for(int i=0;i<Table_Id_Name.Length;i++){
Com.Connection = Con;
Con.Open();
Com.CommandText = @"select * from syscolumns where id = " + int.Parse(Table_Id_Name[i].ToString()) + " and name = '" + AddTableName + "'";
Dr = Com.ExecuteReader();
while (Dr.Read()) {
i_2++;
}
i_1 += i_2 + ",";
i_2 = 0;
Con.Close();
}
//删除字段
SqlCommand ComTableName = new SqlCommand();
ComTableName.Connection = Con;
Con.Open();
str = str.Substring(0,str.Length - 1);
string[] Table_Name = str.Split(',');
i_1 = i_1.Substring(0, i_1.Length - 1);
string[] Table_i_1 = i_1.Split(',');
for (int i = 0; i < Table_Name.Length; i++) {
if (int.Parse(Table_i_1[i].ToString()) != 0) {
StrSQL += @"alter table " + Table_Name[i] + " drop column " + AddTableName + ";";
}
}
if (StrSQL != "") {
ComTableName.CommandText = StrSQL;
ComTableName.ExecuteReader();
}
Con.Close();
//增加字段
StrSQL = "";
Con.Open();
string[] Table_Name_D = str.Split(',');
for (int i = 0; i < Table_Name_D.Length; i++) {
StrSQL += @"alter table " + Table_Name_D[i] + " add " + AddTableName + " "+AddTableType+";";
}
ComTableName.CommandText = StrSQL;
ComTableName.ExecuteReader();
Con.Close();
Console.WriteLine("OK");
Console.ReadLine();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐