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 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |