1
29
您不应该需要SMO来执行查询。尝试改用sqlcommand对象。删除这些using语句。使用此代码执行查询:
另外,删除对SMO的项目引用。注意:您需要正确清理资源。 更新:ADO.NET库 do not support the 'GO' keyword . 您的选择如下:
实际上,在这种情况下,我认为SMO可能是最好的选择,但是您需要找出没有找到DLL的原因。 |
2
9
MSVCR80是Visual C++ 2005运行时。您可能需要安装运行时包。参见 http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647&displaylang=en 了解更多详细信息。 除了解决dll问题和Matt Brunell的答案(我认为这更适合您尝试做的事情),您还可以使用sqlcmd命令行工具(从SQL客户端工具安装)来执行这些SQL脚本。只需确保它在您的路径上,这样您就不会与路径位置发生冲突。 这样就可以了: 实际命令:
参数(案例事项):
执行SQL文件的代码:
见 http://msdn.microsoft.com/en-us/library/ms162773.aspx 有关sqlcmd工具的详细信息。 |
3
2
由于同样需要从代码中自动运行生成的数据库脚本,我开始分析SQL脚本以删除go语句,并将脚本拆分为单独的命令(如@mattbrunell建议的那样)。删除go语句很容易,但是在上拆分语句
此代码已通过SQL Server 2008 R2和“数据库->任务->生成脚本…”生成的脚本进行了测试。下面是脚本中的一些命令示例:
我想单个sqlcommand可能有一些最大长度,在这个长度之上脚本必须被拆分。我的脚本执行无问题,包含大约1800条语句,大小为520 KB。 |
4
0
您是否尝试在.sql文件中使用非常基本的脚本来运行它?可能只是插入一行或创建一个任意表?很容易验证的东西?本质上,这段代码就像是对SQL进行硬编码,只是从文件中读取它。如果您能让它处理一个非常简单的文件,那么我会说文件结构本身可能有问题。这篇文章提到了这样一个事实,即关于档案中可以和不能有什么规定。如果没有别的,这是开始故障排除的好地方。 |
5
0
您可能对此感兴趣: http://geekswithblogs.net/thomasweller/archive/2009/09/08/automating-database-script-execution.aspx 它提供了一个通用的“测试夹具”来自动执行SQL脚本。还有可用的示例代码,并且不依赖于任何异常的程序集… |
6
0
如果在项目中添加以下引用,则原始代码可以正常工作。 我使用SQL 2008 Express。 路径: C:\程序文件(x86)\Microsoft SQL Server\100\sdk\assembly\ 文件夹: Microsoft.sqlserver.smo.dll、Microsoft.sqlserver.connectioninfo.dll和Microsoft.sqlserver.management.sdk.sfc.dll |
Jack Skeletron · T-SQL三表求和 6 年前 |
CSK · 列出sql server中存储过程中的存储过程 6 年前 |
DRT · 从文本字段中提取多个日期 6 年前 |
ihatemash · 确定可以合并哪些行的SQL查询 6 年前 |
Shawn · 使用WinZip命令行的SQL Server作业 6 年前 |