Tag: smo

使用smo重命名数据文件

如何使用SMO重命名物理.mdf .ndf .ldf文件。 这篇文章很有帮助,但我需要使用C#SMO对象。 使用SMO服务器对象我可以检索数据库,然后获取对DataFile对象的访问权限。 按此链接 。 这些都有重命名,但重命名后,没有任何变化。

使用SMO库从C#中的Application运行.sql文件

我正在C#visual studio 2012 RC中构建应用程序。 我必须在应用程序中运行脚本。 为此,我正在使用。 这两个库。 我的应用程序的目标.net框架是4.5。 using Microsoft.SqlServer.Management.Smo; using Microsoft.SqlServer.Management.Common; 在检查天气数据库是否存在后,我编写了运行脚本的代码。 当我运行代码时,弹出一个意外的exception。 我真的知道它是什么意思。 你可以帮助我摆脱这个例外。 我也附加了我的代码和exception预览。 请帮助我…我已经用Google搜索过多了。 **Here are the Exception Details.** System.IO.FileLoadException未处理HResult = -2146232799 Message =混合模式程序集是针对运行时的版本’v2.0.50727’构建的,如果没有其他配置信息,则无法在4.0运行时加载。 Source = mscorlib StackTrace:System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly程序集,String name,Boolean throwOnError,Boolean ignoreCase,ObjectHandleOnStack类型),位于System.Reflection.RuntimeAssembly.GetType(String name,Boolean throwOnError,Boolean ignoreCase)。 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand,Microsoft.SqlServer.Management.Common.ServerConnection.GetStatements(String query,ExecutionTypes executionType,Int32&statementsToReverse)中的Reflection.Assembly.GetType(String name,Boolean throwOnError)。 ExecutionTypes executionType)在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand)位于McFarlaneIndustriesPOSnamespace.SplashScreen.CreateDatabase()的e:\ Works \ McFarlane Industries \ McFarlane Industries销售点源代码\ McFarlaneIndustries […]

smo恢复数据库

我使用SQL Server SMO将.bak还原到新数据库,但无法正常工作。 sql server是2012,smo对象版本来自最新的sdk版本11.0 文件.bak是使用sql management studio 2012,同样的本地电脑,在同一个编码电脑上创建的。 我得到的错误信息是: 服务器’SERVER’的恢复失败。 我的代码出了什么问题? string dbPath = Path.Combine(@”d:\my data”, dbName + “_db” + “.mdf”); string logPath = Path.Combine(@”d:\my data”, dbName + “_db” + “_Log.ldf”); Restore restore = new Restore(); BackupDeviceItem deviceItem = new BackupDeviceItem(“d:\template.BAK”, DeviceType.File); restore.Devices.Add(deviceItem); restore.Database = dbName + “_db”; RelocateFile relocateDataFile = new RelocateFile(“Data”, dbPath); […]

使用SMO复制数据库和数据

我试图将数据库的副本复制到同一服务器上的新数据库。 服务器是我在Windows XP下运行SQL 2008 Express的本地计算机。 使用SMO.Transfer类这样做应该很容易,它几乎可以正常工作! 我的代码如下(稍微简化): Server server = new Server(“server”); Database sourceDatabase = server.Databases[“source database”]; Database newDatbase = new Database(server, “new name”); newDatbase.Create(); Transfer transfer = new Transfer(sourceDatabase); transfer.CopyAllObjects = true; transfer.Options.WithDependencies = true; transfer.DestinationDatabase = newDatbase.Name; transfer.CopySchema = true; transfer.CopyData = true; StringCollection transferScript = transfer.ScriptTransfer(); using (SqlConnection conn = new SqlConnection(connectionString)) […]

如何使用SMO连接到Sqlserver2008任何解决方法都必须完成?

我写这个是为了在本地机器上找到sql server实例: using System; using System.Data; using Microsoft.SqlServer.Management.Smo; namespace Application3 { class Program { static void Main(string[] args) { string srvname = string.Empty; string srvnames = null; DataTable dt = SmoApplication.EnumAvailableSqlServers(true); Console.WriteLine(“————->” + dt.Rows.Count); foreach (DataRow dr in dt.Rows) { try{ Console.WriteLine(“–>Instance ” + dr[“name”]); Server srv = new Server((string)dr[“name”]); foreach (Database db in srv.Databases) […]

使用Collat​​ionInfo.Comparer在c#和SQL之间实现一致的排序

我试图使用SMO的Collat​​ionInfo.Comparer来获取我的c#代码,以便像SQL Server一样排序。 我得到了正确的整理,但我的项目仍然没有正确排序。 var collationInfo = CollationInfo.Collations.Single(x => x.Name == “SQL_Latin1_General_CP1_CS_AS”) as CollationInfo; var comparer = collationInfo.Comparer; int c = comparer.Compare(“Tri-Valley L”, “Trimble L”); 在这种情况下,c返回’1’,表示Tri-Valley L将在Trimble之后。 但是这个代码在SQL Server中 DECLARE @T TABLE ( Name VARCHAR(20) ) INSERT INTO @T ( Name ) VALUES(‘Tri-Valley L’), (‘Trimble L’) SELECT Name FROM @T ORDER BY Name 在Trimble之前返回Tri-Valley。 整理比较的东西是不正常工作,还是我做错了什么?

备份类未显示在Microsoft.SqlServer.Management.Smo参考中

我想在C#Windows窗体应用程序中添加备份和还原function。 为此我插入 我的代码中的Microsoft.SqlServer.Management.Smo引用..但我无法在此引用中看到备份和还原类。 请帮助我。

如何获取表的外键引用

我有一个小问题我还没有找到答案:我如何进入c#并使用Microsoft.SqlServer.Smo外键列所指的表? foreach (Column column in currentTable.Columns) { if (column.IsForeignKey) { //GET TABLE FOREIGN KEY REFERS TO } }

无法立即连接到新创建的SQL Server数据库

我正在使用SQL Server管理对象创建数据库。 我编写了以下方法来生成数据库: public static void CreateClientDatabase(string serverName, string databaseName) { using (var connection = new SqlConnection(GetClientSqlConnectionString(serverName, String.Empty))) { var server = new Server(new ServerConnection(connection)); var clientDatabase = new Database(server, databaseName); clientDatabase.Create(); server.ConnectionContext.Disconnect(); } } 此后不久,我调用另一种方法来执行SQL脚本来生成表格等: public static void CreateClientDatabaseObjects(string createDatabaseObjectsScriptPath, string serverName, string databaseName) { using (var connection = new SqlConnection(GetClientSqlConnectionString(serverName, databaseName))) { string […]

使用smo获取Sql server的数据

我正在使用Sql Server Smo通过C#应用程序创建数据库方案。 但是,我还需要更多,我还需要从每个表中获取数据,如下所示: –…………………………………. INSERT INTO Table123 (…) VALUES (….) INSERT INTO Table456 (…) VALUES (….) –…………………………………. 我怎么能这样做,是否可能? 请注意,我需要使用smo而不是数据库的* .bak等创建一个完整的脚本。