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

31

我习惯使用 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个回答

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

任务 -> 生成脚本 - 下一步 -> 从列表中选择所需的对象 -> 单击高级

然后只需按照向导进行即可。确保在选择脚本选项时将“脚本数据”设置为TRUE。
SQL Server 2008

输入图像描述

SQL Server 2008 R2

输入图像描述

进一步阅读:
Robert Burke: SQL Server 2005 - 脚本化您的数据库
引用自Stack Overflow: 如何获取SQL Server数据的脚本?

1
这应该标记为答案。不需要扩展或付费附加组件。已适当地完成工作。 - Exzile
2
对于较新的SQL Server Management Studio版本,您应该按高级按钮并将“要脚本化的数据类型”选项设置为“模式和数据”。 - S.Serpooshan

3

2

这是将表导出为SQL脚本的最干净(且最可配置)的方法。这个功能应该在SSMSE中存在。 - Cristian Diaconescu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接