以前我们要将一个表中的数据导出为脚本,那么只有在网上找一个导出数据的Script,然后运行就可以导出数据脚本了。现在在SQL Server 2008的Management Studio中增加了一个新特性,除了导出表的定义外,还支持将表中的数据导出为脚本。导出过程是这样的,我简单说明下:
(1)在SSMS2008中的对象资源管理器中,右击需要导出数据的数据库,在弹出式菜单中选择“任务”下的“生成脚本”选项。
(2)在脚本向导的选择脚本选项中,将“编写数据的脚步”选择为TRUE,这里默认是为FALSE的。
(3)然后下一步选择导出的对象,选择导出的表,最后完成时即可以看到由系统导出的表定义和表数据了,例如我们导出Person.AddressType表中的数据,那么系统生产的表数据这部分的脚步就是:
SET IDENTITY_INSERT [Person].[AddressType] ON
INSERT [Person].[AddressType] ([AddressTypeID], [Name], [rowguid], [ModifiedDate]) VALUES (1, N'Billing', N'b84f78b1-4efe-4a0e-8cb7-70e9f112f886', CAST(0x00009BB600305BC5 AS DateTime))
INSERT [Person].[AddressType] ([AddressTypeID], [Name], [rowguid], [ModifiedDate]) VALUES (2, N'Home', N'41bc2ff6-f0fc-475f-8eb9-cec0805aa0f2', CAST(0x00009BB600305BC5 AS DateTime))
INSERT [Person].[AddressType] ([AddressTypeID], [Name], [rowguid], [ModifiedDate]) VALUES (3, N'Main Office', N'8eeec28c-07a2-4fb9-ad0a-42d4a0bbc575', CAST(0x00009BB600305BC5 AS DateTime))
INSERT [Person].[AddressType] ([AddressTypeID], [Name], [rowguid], [ModifiedDate]) VALUES (4, N'Primary', N'24cb3088-4345-47c4-86c5-17b535133d1e', CAST(0x00009BB600305BC5 AS DateTime))
INSERT [Person].[AddressType] ([AddressTypeID], [Name], [rowguid], [ModifiedDate]) VALUES (5, N'Shipping', N'b29da3f8-19a3-47da-9daa-15c84f4a83a5', CAST(0x00009BB600305BC5 AS DateTime))
INSERT [Person].[AddressType] ([AddressTypeID], [Name], [rowguid], [ModifiedDate]) VALUES (6, N'Archive', N'a67f238a-5ba2-444b-966c-0467ed9c427f', CAST(0x00009BB600305BC5 AS DateTime))
SET IDENTITY_INSERT [Person].[AddressType] OFF
哈哈,还SET IDENTITY_INSERT ON了,支持对IDENTITY列的数据插入,比我们一般用脚本或者存储过程来导要方便,希望这个功能对大家有用。
PS:由于这个功能在联机丛书中似乎也没有介绍,而且默认又是关闭的,所以大家估计都没有注意到这个功能,我也一直没有注意到,直到今天在看一篇国外的博客才看到的。
下一篇 创建SQL作业提示错误的解决方法