从C#映射所有数据库表的结构/模式

时间:2014-06-09 09:30:12

标签: c# sql

我有以下查询,我从前端传递给前: -

CREATE TABLE [" + TableName + "]"
                             + "("
                             + "[Fname] [varchar](100) NOT NULL,"
                             + "[Lname] [varchar](300) NOT NULL,"
                             + "[CODE] [varchar](6) NULL,"
                             + "[TYPE] [varchar](4) NULL,"
                             + "[AMT] [float] NULL"
                             + ") ON [PRIMARY]";

我想要做的是,如果数据库中没有表格,我想创建它。

但如果它存在,那么我想将该表结构与查询结构进行比较,如果存在一些差异,我想更新数据库表。但是没有丢失表格的数据。

我想为特定数据库的所有表做这件事。

从哪里开始的任何建议?如何实现这个任务?有什么想法吗?

帮帮我......

1 个答案:

答案 0 :(得分:0)

您可以手动或使用visual studio进行操作 -

手动:您可以在此处查看此帖子,使用系统表和information_schema开始获取元信息 -

http://www.tech-recipes.com/rx/24343/sql-server-useful-metadata-queries/

然后,您可以收集所需的所有信息并进行比较。

这也可能是一个很好的起点 -

http://msdn.microsoft.com/en-us/library/ms186778.aspx

Visual Studio 我现在最好的是visual studio。视觉工作室内部首先创建一个SQL Server数据库项目。

然后,右键单击该项目,然后单击" Schema Compare"。您将被要求选择2个数据库1.源和2.目的地。源是新数据库,目标应该是旧数据库。选择visual studio后,将比较它们并显示一个屏幕以查看更改。

检查更改后,请检查屏幕顶部的按钮,您会找到必要的按钮,例如“比较”按钮。 '更新'等有很自我解释,所以我想你会理解它们。

我想你可以从这里找到自己的方式。这在此处记录。

http://msdn.microsoft.com/en-us/library/aa833435(v=vs.100).aspx

http://msdn.microsoft.com/en-us/library/dd193250(v=vs.100).aspx

编辑我现在没有SQL服务器,我的窗户被压了,所以无法显示正确的截图,但这可能会有所帮助 -

enter image description here