如何在SSMS中创建与另一服务器结构相同但无数据的表
在SSMS中创建同结构空表的几种实用方法
嘿,我来给你几个简单靠谱的办法,快速在SSMS里创建和另一台服务器结构完全一致但不带数据的表:
方法一:用SSMS生成脚本功能(最全面,首推)
这是图形界面操作里最省心的方式,能完整复制表的架构、索引、约束甚至触发器:
- 先连接到源服务器,找到你要复制的表所在的数据库和表
- 右键点击这个表 → 选择「任务」→ 「生成脚本」
- 跟着向导走,第一步精准选择要生成脚本的目标表(别选整个数据库哦)
- 到「设置脚本编写选项」步骤,点击「高级」按钮:
- 找到「编写数据的脚本」,把它改成False(这就是不复制数据的核心设置)
- 同时确保「编写架构的脚本」是True,如果需要复制索引、约束、触发器,记得把对应的选项也改成True
- 接下来选择把脚本保存到「新查询窗口」(方便直接执行),完成向导
- 最后连接到目标服务器,把生成脚本里的数据库名、架构名改成目标环境的,执行脚本就搞定啦!
方法二:用T-SQL的SELECT INTO语句(适合喜欢写代码的同学)
如果习惯用命令行操作,这个方法能快速生成基础表结构,但要注意它不会复制索引、约束这些额外对象:
- 先确保目标服务器能访问源服务器(可以提前创建链接服务器,或者用OPENROWSET/OPENQUERY)
- 执行下面的语句:
SELECT TOP 0 * INTO 目标数据库.dbo.目标表名 FROM 源服务器.源数据库.dbo.源表名;
敲黑板:
TOP 0就是只取结构不取数据的关键,而且SELECT INTO会自动继承源表的标识列属性哦。
方法三:改造你熟悉的Export Data向导
既然你已经会用Tasks | Export Data导数据,其实只要改个设置就能只建表不导数据:
- 启动Export Data向导,选好源服务器和目标服务器/数据库
- 到「选择源表和视图」步骤,勾选要复制的表,然后点击「编辑映射」
- 在映射窗口里,确认「目标」是「创建新表」,然后点击「高级」按钮
- 在高级选项里,找到「复制数据」并取消勾选(部分版本是设置「行数限制」为0)
- 继续完成向导,执行后就只会在目标服务器创建空表啦
额外注意事项
- 如果源表有外键约束,记得先确保目标数据库里已经存在关联的表,不然脚本执行会报错
- 生成脚本时,一定要检查脚本里的数据库、架构名称,避免在错误的库创建表
- 用SELECT INTO的话,后续需要手动创建索引、约束和触发器,适合只需要基础表结构的场景
内容的提问来源于stack exchange,提问作者user3761541
相关产品推荐
相关产品推荐

