怎样用程序或者SQL语句实现表结构的生成?包括主键,外键关联以及约束等关系也要生成

解决方案 »

  1.   

    ADOX 控件(动态生成access)
      

  2.   

    string _sqlstrr = "select * from PsnInfo";
    this._mDa = new SqlDataAdapter(_sqlstrr,this._mConn);
    this._mDa.Fill(this._mDs,"PersonInfo");DataSet ds = new DataSet();
    ds = this._mDs.Clone();//_mDs为当前数据源
      

  3.   

    CREATE  PROCEDURE GetTableInfo
         @TableName varchar(50)
    AS
         SELECT 
    (case when a.colorder=1 then d.name else '' end) N'TableName',
    a.colorder N'字段序号',
    a.name N'ColName',
    (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) N'Identity',
    (case when (SELECT count(*)
    FROM sysobjects
    WHERE (name in
               (SELECT name
             FROM sysindexes
              WHERE (id = a.id) AND (indid in
                        (SELECT indid
                      FROM sysindexkeys
                       WHERE (id = a.id) AND (colid in
                                 (SELECT colid
                                FROM syscolumns
                               WHERE (id = a.id) AND (name = a.name))))))) AND
           (xtype = 'PK'))>0 then '√' else '' end) N'PrimaryKey',
    b.name N'DataType',
    a.length N'占用字节数',
    COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'Length',
    isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'Scale',
    (case when a.isnullable=1 then '√'else '' end) N'KongZhi',
    isnull(e.text,'') N'Default',
    isnull(g.[value],'') AS N'Description'
    FROM  syscolumns  a left join systypes b 
    on  a.xtype=b.xusertype
    inner join sysobjects d 
    on a.id=d.id  and  d.xtype in ('U','V') and  d.name<>'dtproperties' and d.name=@TableName
    left join syscomments e
    on a.cdefault=e.id
    left join sysproperties g
    on a.id=g.id AND a.colid = g.smallid  
    order by object_name(a.id),a.colorderGO
      

  4.   

    up 
    可以自己写存储过程如ls,
    或者干脆用数据库生成sql脚本即可
      

  5.   

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PsnInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[PsnInfo]
    GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PsnDetail]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[PsnDetail]
    GOCREATE TABLE [dbo].[PsnInfo] (
    [PersonID] [int] NOT NULL ,
    [PersonName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [PersonAddress] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [PSex] [bit] NULL ,
    [PAge] [int] NULL ,
    [Preal] [real] NULL 
    ) ON [PRIMARY]
    GOCREATE TABLE [dbo].[PsnDetail] (
    [PersonID] [int] NULL ,
    [aa] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [bb] [nchar] (10) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOALTER TABLE [dbo].[PsnInfo] WITH NOCHECK ADD 
    CONSTRAINT [PK_PerInfo] PRIMARY KEY  CLUSTERED 
    (
    [PersonID]
    )  ON [PRIMARY] 
    GO
      

  6.   

    sqlserver直接生成的脚本lz的要求 在生成选项里都有