我有大约50个T-SQL文件,其中一些是30MB,但有些是700MB。我想过手动执行它们,但如果文件大于10MB,则会在SQL Server Management Studio上引发内存不足的异常。
有什么想法吗?
答案 0 :(得分:12)
您可以尝试使用sqlcmd命令行工具,该工具可能具有不同的内存限制。 http://msdn.microsoft.com/en-us/library/ms162773.aspx
用法示例:
sqlcmd -U userName -P myPassword -S MYPCNAME\SQLEXPRESS -i myCommands.tsql
答案 1 :(得分:5)
如果您拥有那么多数据 - 将数据放在例如数据中会不会更容易和更智能一个CSV文件,然后批量导入到SQL Server?
查看BULK INSERT命令 - 允许您快速有效地将大量数据加载到SQL Server中 - 比这么大的SQL文件好得多!
该命令类似于:
BULK INSERT dbo.YourTableName
FROM 'yourfilename.csv'
WITH ( FIELDTERMINATOR =';',
ROWTERMINATOR =' |\n' )
或您可能需要导入的任何格式。
答案 2 :(得分:3)
也许这太明显了,但是......你考虑编写一个循环文件的程序并为每一行调用SqlCommand.ExecuteNonQuery()
吗?这几乎是微不足道的。
不太明显的优势: