我基本上需要知道如何将 SQL 代码导入 Access。我尝试了一种方法,但这需要我一次做一张表和一个值,这需要很长时间。
任何人都可以帮忙吗?
我基本上需要知道如何将 SQL 代码导入 Access。我尝试了一种方法,但这需要我一次做一张表和一个值,这需要很长时间。
任何人都可以帮忙吗?
如果您尝试导入数据而不是 SQL 代码(请参阅 Duffymo 的回复),有两种方法。
一种是去数据所在的地方转储一个 .CSV 文件并将其导入,正如 Duffymo 回应的那样。
另一种是创建从 Access 数据库到源数据库中的表的表链接。如果两个数据库以这种方式相互通信,您可以像使用 Access 数据库中一样使用远程表中的数据。
SQL 代码?还是数据?“一表一值”让我觉得是后者。如果是这样,我建议将数据转储到 .csv 文件中并将其导入 Access 表中。
或者也许使用像微软的 DTS 这样的工具在源之间映射和移动数据。那将是最好的主意。
好吧,几天前我需要将数据从 Access 数据库转移到 SQL(与您正在做的相反)。我发现编写一个从我的访问数据库中读取数据并将其插入 SQL 的简单脚本更简单。
我不认为做你需要做的有什么不同。
我不知道它是否有帮助,但我发布了我的代码(这是一个简单的 C# 函数)。您只需更改连接即可。当然,我只有 3 个字段,所以我对它们进行了硬编码。您可以对您的数据库架构执行相同的操作。
protected void btnProcess_Click(object sender, EventArgs e)
{
//Open the connections to the access and SQL databases
string sqlDBCnn = @"Data Source=.\SQLEXPRESS;Integrated Security=True;AttachDBFileName=|DataDirectory|\mydb.mdf;user instance=true";
string accessDBCnn = @"Provider=Microsoft.Jet.OleDB.4.0;Data Source=C:\mydb.mdb";
OleDbConnection cnnAcc = new OleDbConnection(accessDBCnn);
cnnAcc.Open();
SqlConnection cnnSql = new SqlConnection(sqlDBCnn);
cnnSql.Open();
SqlCommand cmSql = new SqlCommand("DELETE tablename", cnnSql);
cmSql.ExecuteNonQuery();
//Retrieve the data from the Access Database
OleDbCommand cmdAcc = new OleDbCommand("SELECT * FROM tablename", cnnAcc);
OleDbDataReader drAcc = cmdAcc.ExecuteReader();
using (drAcc)
{
if (drAcc.HasRows)
{
//Loop through the access database records and add them to the database
while (drAcc.Read())
{
SqlCommand cmdSql = new SqlCommand("INSERT INTO tablename(Category, Head, Val) VALUES(@cat,@head,@val)",cnnSql);
SqlParameter parCat = new SqlParameter("cat",System.Data.SqlDbType.VarChar,150);
SqlParameter parHead = new SqlParameter("head",System.Data.SqlDbType.VarChar,150);
SqlParameter parVal = new SqlParameter("val",System.Data.SqlDbType.VarChar);
parCat.Value = drAcc["Category"].ToString();
parHead.Value = drAcc["Head"].ToString();
parVal.Value = drAcc["Val"].ToString();
cmdSql.Parameters.Add(parCat);
cmdSql.Parameters.Add(parHead);
cmdSql.Parameters.Add(parVal);
cmdSql.ExecuteNonQuery();
}
}
}
lblMsg.Text = "<p /> All Done Kapitone!";
}
我猜您是在谈论将结构和数据从 SQL“导入”到 ACCESS。ACCESS 不接受可以直接从 SQL 数据库生成的标准 TSQL 脚本。有一些商业产品,如EMS,或多或少可以为您完成这项工作。EMS 有一个数据导出器模块,可以获取不同格式的 SQL 数据,包括 Access。
另一种方法是打开一个 Access 文件并编写一些基本的 VBA 代码,利用 DoCmd.TransferDatabase 方法,您可以将其他数据库中的表链接或复制到 Access 中。
我忘记了这些方法是否也允许传输“干净”的数据库模型,包括主键和关系......你必须试一试。