2016-06-08 83 views
0

我已经使用SQL Management Studio将我的数据库导出为SQL脚本,既可以作为单个文件,也可以作为多个文件。在这两种情况下,当我在VS.net 2015中创建一个空的数据库项目并选择“导入...脚本”,并选择我的一个大脚本,或多个脚本的文件夹不会在项目中创建任何工件。从SQL脚本导入始终失败

的日志多文件导入文件给出

08/06/2016 15:33:18 This log contains information about the import operation of the script 'dbo.SOMETABLENAME.Table.sql' into project 'MYPROJECTNAME' on computer 'MYCOMPUTER' by user'philliph. 
08/06/2016 15:33:33 Started importing file: C:\Users\philliph\AppData\Local\Temp\tmp29BA.tmp 
08/06/2016 15:33:33 File name C:\Users\philliph\AppData\Local\Temp\tmp29BA.tmp (size: 5800811) 
08/06/2016 15:33:33 Parsing import script 
08/06/2016 15:34:07 A summary of the import was saved to the following location: MYSOURCELOCATION\Import Script Logs\dbo_FIRSTTABLENAME__20160608023318.log 
08/06/2016 15:34:07 Click Finish to continue... 

而对于单个文件导入日志文件中没有给出更多有用的信息。我尝试使用ASCII或UNICODE格式从SQL Server导出,并且脚本本身看起来很好。我可以直接从数据库本身导入数据库项目,但不想这样做,因为我有许多SQL复制数据库构件,我不想放在源代码控制下,并且在Management Studio中导出脚本允许我将它们过滤掉。

有没有人成功导入脚本或有一些秘密呢?我注意到日志似乎创建了一个大的临时文件,但只要工具完成其处理(需要几分钟),它就会被删除,所以我不能说出它包含的内容。

+0

我已经设法使用从脚本导入一次性新对象,但从未尝试过填充初始项目。为此,我总是使用dacpac或直接连接。 dacpac实际上给了我更好的成功,因为它倾向于忽略依赖关系。 –

回答

0

为了记录,我从来没有找到从脚本成功导入的方法。我试图这样做,以避免从我的实时数据库导入复制人工制品。在http://weblogs.asp.net/gunnarpeipman/using-visual-studio-database-projects-in-real-life中发布了一个想法之后,我使用Schema Compare工具在我的活动数据库和一个空的数据库项目之间生成了一个比较。这个工具允许我在将比较应用到我的数据库项目之前筛选出我想要的任何数据库对象。

虽然它没有解决我原来的问题,但是这种解决方法可能对其他人有用。