有一些生成数据库的脚本文件,要做个程序来通过这些脚本生成数据库。即可以在本机生成,又能在局域网中的其他机上生成。不知道有没有做过这的朋友给些源码看看啊。

解决方案 »

  1.   

    为什么要做呢?直接利用SQL查询分析器就可以
      

  2.   

    得写dos批处理脚本才可以。以下为Duwamish的数据库安装脚本。参考以下:
    @echo offIF "%1"=="" GOTO usage@echo.
    @echo. Building Duwamish 7 Database...
    @echo.@echo.
    @echo. Creating Tables...
    @echo.
    osql -E -d %1 -n -i d7_tables.sql
    @echo.
    @echo. Creating Stored Procedures...
    @echo.
    osql -E -d %1 -n -i d7_sprocs.sqlosql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[GetAddressByCustomerId] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[GetCategories] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[GetCustomerById] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[GetCustomerByEmail] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[GetBooksByAuthor] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[GetBooksByCategoryId] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[GetBookById] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[GetBooksByISBN] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[GetBooksBySubject] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[GetBooksByTitle] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[InsertAddress] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[UpdateCustomerAddress] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[InsertCustomer] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[InsertOrderDetail] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[InsertOrderDetailsByList] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[InsertSale] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[UpdateCustomer] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[PopFirstWord] TO [%1]"
    osql -E -d %1 -n -b -Q"GRANT EXEC ON [dbo].[GetDailyPickBooksByCategoryId] TO [%1]"
    @echo.
    @echo. Loading Data...
    @echo.
    bcp %1..ItemType     in ItemType.bcp     -E -T -w
    bcp %1..ItemCategory in ItemCategory.bcp -E -T -w
    bcp %1..Categories   in Categories.bcp   -E -T -w
    bcp %1..Items        in Items.bcp        -E -T -w
    bcp %1..DailyPick    in DailyPick.bcp    -E -T -w
    bcp %1..Books        in Books.bcp        -E -T -w
    bcp %1..Authors      in Authors.bcp      -E -T -w
    bcp %1..BookAuthor   in BookAuthor.bcp   -E -T -w
    bcp %1..Publishers   in Publishers.bcp   -E -T -w
    bcp %1..Customers    in Customers.bcp    -E -T -w
    bcp %1..Addresses    in Addresses.bcp    -E -T -w@echo.
    @echo. Completed!
    @echo.
    GOTO :EOF:usage
    echo.
    echo. Usage: Setup [D7 : Duwamish 7 Database Name]
    echo.      :   Database must already exist.
    echo.  Desc:   Create Tables, 
    echo.      :   Stored Procedures, 
    echo.      :   Loads Duwamish Data
    echo.
      

  3.   

    lhcoolhacker:
    上面的代码要求运行该代码的机器安装有SQLSERVER,如果没有安装不了.可以直接使用SqlCommand对象来执行命令建立脚本string sqltext="create table ...."//这里可以放所有脚本 
    SqlCommand com=new SqlCommand(sqltext,conn);
    com.ExecuteNoQuery().
      

  4.   

    lidong6(立冬) 用SqlCommand是可以生成,在其他机上也可以。如果脚本不是太多的话是个好方法,不过要是脚本很多(我要执行的有700多行),要是也用这种方法那就一个字——惨!
    不知道C#里面有没有可以直接运行脚本文件的方法?