我基本上需要知道如何将SQL代码导入Access。我尝试了一种方法,但这需要我一次做一个表和一个值,这需要花费很多时间。
有人可以帮忙吗?
答案 0 :(得分:1)
如果您尝试导入数据而不是SQL代码(请参阅Duffymo的回复),有两种方法。
一个是去数据的位置并转储.CSV文件并导入它,就像Duffymo回应。
另一种是创建从Access数据库到源数据库中的表的表链接。如果这两个数据库以这种方式相互通信,则可以使用远程表中的数据,就像它在Access数据库中一样。
答案 1 :(得分:0)
SQL代码?还是数据? “一张桌子和一张桌子”让我觉得这是后者。如果是这样,我建议将数据转储到.csv文件中并将其导入Access表。
或者使用像Microsoft的DTS这样的工具来映射和移动源之间的数据。那将是最好的主意。
答案 2 :(得分:0)
好吧,几天前我需要将数据从Access数据库转移到SQL(与你正在做的相反)。我发现编写一个简单的脚本可以更简单,该脚本将从我的访问数据库读取数据并将其插入SQL。
我认为做你需要做的事情是不同的。
我不知道它是否会有所帮助,但是我发布了我的代码(这是一个简单的C#函数)。您只需更改连接即可。当然我只有3个字段所以我对它们进行了硬编码。您可以对db模式执行相同的操作。
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!";
}
答案 3 :(得分:0)
我猜你在谈论将SQL中的结构和数据“导入”到ACCESS。 ACCESS不接受您可以直接从SQL数据库生成的标准TSQL脚本。有一些商业产品,如EMS,可以或多或少地为您完成工作。 EMS有一个数据导出器模块,可以采用不同格式的SQL数据,包括Access。
另一种方法是打开Access文件并编写一些基本的VBA代码,利用DoCmd.TransferDatabase方法,您可以在其中链接或将其他数据库中的表复制到Access中。
我忘了这些方法是否也允许传输“干净”的数据库模型,包括主键和关系......你必须尝试一下。