如何简单地为表和数据生成CREATE SQL脚本?

时间:2008-11-23 14:39:22

标签: sql-server

所以我习惯了PHPMySQL,如果我想将表从一个数据库传输到另一个数据库,我:

  • 转到表格
  • 点击“导出”
  • CTRL-C
  • 转到其他数据库,插入SQL,CTRL-V

在MS SQL Server 2008 Express中,我尝试:

  • 右键单击,脚本表为,CREATE TO
    • 但这只给了我CREATE TABLE sql,而不是INSERT INTO sql
  • 右键单击,脚本表为,INSERT TO
    • 这给了我INSERT TO sql但假设我要填写数据(!)
  • 所以我启动了SQL Server 2008 Express导入/导出数据向导,但它似乎没有给我我想要的简单的CREATE / INSERT INTO脚本。 : - (

那么如何在MS SQL Server 2008 Express中获得表的简单SQL转储,这是PHPMySQL给我的那种:

-- phpMyAdmin SQL Dump
-- version 2.11.9.2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Nov 23, 2008 at 03:34 PM
-- Server version: 5.0.67
-- PHP Version: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `test`
--

-- --------------------------------------------------------

--
-- Table structure for table `members`
--

CREATE TABLE IF NOT EXISTS `members` (
  `id` int(11) NOT NULL auto_increment,
  `firstName` varchar(50) collate latin1_general_ci NOT NULL,
  `lastName` varchar(50) collate latin1_general_ci NOT NULL,
  `age` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=4 ;

--
-- Dumping data for table `members`
--

INSERT INTO `members` (`id`, `firstName`, `lastName`, `age`) VALUES
(1, 'Jim', 'Taylor', 34),
(2, 'John', 'McGregor', 23),
(3, 'Alice', 'Anderson', 33);

3 个答案:

答案 0 :(得分:70)

在SQL Server Management Studio中,您可以右键单击数据库并选择:

任务 - >生成脚本 - 下一步 - >从列表中选择您需要的对象 - >点击高级 然后只需继续完成向导。当提示您选择脚本选项时,请确保将“脚本数据”设置为“TRUE”。

SQL Server 2008

enter image description here

SQL Server 2008 R2

enter image description here

进一步阅读:

Robert Burke:SQL Server 2005 - 编写数据库脚本

从堆栈溢出中获取: How to get script of SQL Server data?

答案 1 :(得分:2)

请看这里:Simon Holywell: SQL Server 2005 Dump to SQL statements

西蒙所说的(没有双关语)是这样的:没有任何内置的东西,但有一种“脚本方式”来做到这一点。他制作了一个可以使用的PHP脚本。

答案 2 :(得分:1)

您应该使用数据库发布向导来执行该操作

http://www.codeplex.com/sqlhost/Wiki/View.aspx?title=Database%20Publishing%20Wizard