我处于这样一种情况,我将为数据库生成一个脚本,我可以在另一台服务器上运行并获得与原始数据库相同的数据库,但没有任何数据.实质上,我希望最终得到一个捕获数据库模式的大型创建脚本.
我在安装了SQL Server 2000的环境中工作,我无法安装2005客户端工具(如果他们有帮助).我负担不起RedGate,但我真的希望在另一台服务器上拥有一个具有相同架构的数据库.
有什么建议?任何简单的.exe(无需安装)工具,技巧或T-SQL技巧都将非常受欢迎.
更新:我正在使用的数据库有200多个表和几个外键关系和约束,因此手动编写每个表并将脚本粘贴在一起并不是一个可行的选择.我正在寻找比这个手动解决方案更好的东西
其他更新除非我完全遗漏了某些内容,否则这不是使用SQL 2000工具的可行解决方案.当我选择在数据库上生成创建脚本的选项时.我最终得到一个包含CREATE DATABASE命令的脚本,并且没有创建任何对象 - 表,约束等.SQL 2005的Management Studio也可以处理这些对象,但数据库处于没有对象的环境中我可以将Management Studio的安装连接到它.
运行SQL Server Management Studio,右键单击数据库并选择 Script Database as > Create to > file
这适用于SQL Server 2005.SQL Server 2000企业管理器具有类似的命令.只需右键单击数据库即可> All Tasks > Generate Scripts
.
编辑:在SQL Server 2005中,您可以在对象资源管理器窗格中选择"数据库",然后在详细信息窗格中选择几个数据库.然后,右键单击您的选择并将"脚本数据库另存为>创建到>文件".这将导致它将它们全部放入一个脚本中,它将包括所有表,键,存储过程和约束.
所以,我假设您无法安装SQL Server Management Studio.甚至没有免费版本.如果这是一次性的事情,我会安装红门工具.试用版可以使用14天.做你的工作,然后卸载.您也可以查看http://www.xsqlsoftware.com/,它们具有与Red Gate类似的功能.如果您的数据库很小,那么他们可以为您提供免费选项.我也喜欢http://www.apexsql.com/.使用其中一个的试用,然后再次尝试说服你的老板买一个.
除了上面的答案之外,我还建议(至少在未来的项目中)你没有掌握数据库本身的数据库设计.
实现此目的的一种方法是从第一天开始简单地将数据库表,过程等维护为"CREATE"脚本,并设计一个主脚本,将所有单个脚本连接在一起,以便部署到您选择的数据库中.
一个更复杂的解决方案是使用像Visual Studio数据库版本(可能太贵了,如果你的评论是任何东西),它允许你将每个数据库对象视为项目中的节点,同时仍然允许整个事情是只需点击几下即可部署.
这两个选项的解释都过于简化,因为还有很多其他问题 - 版本控制,数据迁移等 - 但主要原则是相同的.
一旦您提取了脚本 - 使用其他答案之一 - 您可能需要考虑使用此脚本作为"主人"的基础.
只需将"设计"保留在数据库之外 - 这纯粹是为了"实现".
尝试将该过程视为与开发代码类似 - 源和二进制文件保持独立,后者由前者生成.