我正在开发一个C#应用程序,我想要一个显示数据库中所有现有表的窗口,用户可以选择要在sql compact中的新数据库中重新创建的表,某些表必须包含初始信息而另一个只是表格的结构。
有没有帮助重新创建此表?
我想生成现有表(* .sql)的脚本并从文件创建表到新数据库,但我不知道如何进行查询以生成sql表。
PS:现有的表在sqlserver中,我想在sqlcompact中创建一个表。
答案 0 :(得分:0)
您可以使用SMO执行此操作。
这里有一个简单的例子:
http://www.sqlservercentral.com/articles/SMO/scriptdatabaseobjectswithsmo/2342/
答案 1 :(得分:0)
我不知道differences between Sql Server and Sql Server CE但您可以使用Sql Server Management Studio为表格,程序等生成脚本。右键单击数据库,然后单击任务>生成脚本。
据我所知,大多数不支持的功能是查询,程序,视图......
答案 2 :(得分:0)
如果您使用NHibernate进行数据访问,他们有一个很好的SchemaExport工具,可以用于NHibernate支持的所有数据库(不仅仅是SQL Server)。因此,您的解决方案是列出所有映射实体,让用户选择他想要的实体,使用选定实体创建新配置,并使用SchemaExport以您想要的方言生成SQL。
答案 3 :(得分:0)
您可以使用我的脚本API /库以正确的SQL Server Compact方言生成CREATE TABLE脚本。 SMO无法为您做到这一点,它针对各种SQL Server版本。 http://exportsqlce.codeplex.com
答案 4 :(得分:0)
查看以下视图:
Information_Schema.TABLES
Information_Schema.COLUMNS
Information_Schema.REFERENTIAL_CONSTRAINTS
Information_Schema.TABLE_CONSTRAINTS
Information_Schema.KEY_COLUMN_USAGE
我没有代码可以处理(抱歉),但我之前使用过这些代码来根据纯TSQL中的数据库自己的元数据重新创建表定义,并且没有理由在C#中无法完成申请也一样。将它们连接在一起,为最终定义声明一个字符串,并在结果集中光标以获取表中的所有字段,从而构建输出。完成后,将其返回给客户端。出于测试目的,比较代码的输出与SSMS在要求脚本创建表时产生的结果,并希望您能够相对快速地重新创建表定义。