이제이 질문에 대한 질문을 받았을 수 있지만 찾은 답변 중 만족스럽지 않습니다. 간단히 말해 SQL Server Express의 한 인스턴스에서 데이터베이스간에 하나의 테이블 (데이터 포함)을 이동하는 것입니다.C#을 사용하여 두 SQL Server 데이터베이스간에 테이블 이동
나는 테이블 복사본을 만들고 이전 스크립트를 삭제하려고 시도했지만 C#을 사용하여 스크립트를 생성하는 것은 작은 악몽이며 계속 오른쪽 및 중심의 구문 문제를 계속 실행합니다. 나는 단순히 스크립트를 생성하기 위해 다음과 같은 코드를 시도했다하지만 난 구문 오류를 얻을 :
string connectionString = "<myconnectionstring>";
SqlConnection conn = new SqlConnection(connectionString);
string script = dbscript;
string dbscript = ScriptDatabase();
Server server = new Server(new ServerConnection(conn));
server.ConnectionContext.ExecuteNonQuery(script);
은 다음 ScriptDatabase()가되는 경우로 :
이public string ScriptDatabase()
{
string connectionString = "<myconnectionstring>";
SqlConnection conn = new SqlConnection(connectionString);
Server server = new Server(new ServerConnection(conn));
var sb = new StringBuilder();
var database = server.Databases["dbname"];
var scripter = new Scripter(server);
scripter.Options.ScriptData = true;
scripter.Options.ScriptDrops = false;
scripter.Options.IncludeHeaders = true;
//And so on ....
Microsoft.SqlServer.Management.Smo.Table t = database.Tables["tablename"];
var smoObjects = new Urn[1];
smoObjects[0] = t.Urn;
if (t.IsSystemObject == false)
{
foreach (var st in scripter.EnumScript(smoObjects))
{
sb.Append(st);
}
}
return sb.ToString();
}
내가 가진 다른 큰 문제는 내가 생성 어떻게입니다 데이터베이스에서 하나의 테이블에 대한 스크립트를 열어 USE [CurrentDB]
문이 USE [OtherDB]
으로 생성되도록 하시겠습니까?
감사합니다.
[SMO] (http://msdn.microsoft.com/en-us/library/Microsoft.SqlServer.Management.Smo.aspx) 특히 [Transfer class] (http://msdn.microsoft.com)를 사용하십시오. /en-us/library/microsoft.sqlserver.management.smo.transfer.aspx) –