问题标签 [sqlcmd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
272 浏览

sql-server - 从生产中恢复 dev db:基于存储在表中的列表运行一组 SQL 脚本?

我需要从生产数据库中恢复备份,然后自动重新应用 SQL 脚本(例如 ALTER TABLE、INSERT 等)以将该数据库模式恢复到正在开发的状态。

会有很多脚本,来自少数不同的开发人员。它们不会都在同一个目录中。

我目前的计划是在伪系统数据库的表中列出具有完整文件系统路径的脚本。然后在此数据库中创建一个存储过程,该过程将首先运行 RESTORE DATABASE,然后在脚本列表上运行光标,为每个脚本创建一个 SQLCMD 命令字符串,然后使用 xp_cmdshell 为每个脚本执行该 SQLCMD 字符串。

cursor->sqlstring->xp_cmdshell->sqlcmd 的顺序对我来说感觉很笨拙。此外,它需要打开 xp_cmdshell。

我不可能是唯一一个做过这种事情的人。有没有一种更简洁的方法来运行一组分散在服务器文件系统周围的脚本?特别是,不需要 xp_cmdshell 的方式?

0 投票
1 回答
2624 浏览

sql - SQLCMD 模式 - 语法不正确?

尝试使用:

...我得到:

消息 102,级别 15,状态 1,第 5 行 'U' 附近的语法不正确。** 批处理执行过程中遇到错误。退出。

我错过了什么?

0 投票
6 回答
10631 浏览

c# - 使用用户输入构建 SQL 查询字符串

我必须使用用户在网页上选择的值创建一个字符串,

假设我需要显示具有不同搜索条件的多台机器的文件......

我目前使用此代码:

现在这是一个固定查询,用户只有一台机器并且只选择一个日期......

我想做一个查询,如果他/她想要根据他/她选择的内容,用户有多个搜索选项,例如类型或大小。

此外,如果他/她可以选择多台机器......

所有这些都发生在运行时......否则我必须创建一个for循环来将多台机器一个接一个地放置......并根据用户选择的情况进行多个查询......

这很有趣,我可以使用一些帮助......

0 投票
4 回答
8061 浏览

sql-server - SQLCMD 还原在 Management Studio 中有效,但在 DOS 提示符下无效

知道为什么我的 Restore 命令在 Management Studio 2008 中运行时运行良好,但在从 dos 提示符下运行时运行良好吗?

下面显示的是从dos提示符运行时的错误。

但是,如果我直接在 Management Studio 2008 中执行此操作,则效果很好:

没有锁定或安全问题,服务器上不存在数据库。

我想不通。

有任何想法吗?

0 投票
1 回答
18706 浏览

sql - 如何使用 sql 写入或追加到文本文件?

我需要从存储过程中调用 sqlcmd 来将表导出到文本文件?

0 投票
1 回答
387 浏览

sqldatareader - SQLDataReader 是否比使用命令行实用程序 sqlcmd 慢?

我最近向一位同事提倡我们将一些使用 sqlcmd 命令行实用程序的 C# 代码替换为 SqlDataReader。旧代码使用: System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c" + sqlCmd); sqlCmd 类似于 "sqlcmd -S " + serverName + " -y 0 -h-1 -Q " + "\"" + "USE [" + database + "]" + ";+ txtQuery.Text +"\ "";\

然后使用正则表达式解析结果。我认为使用 SQLDataReader 会更符合行业惯例,更易于调试和维护并且可能更快。但是,SQLDataReader 方法的速度至少相同,而且很可能更慢。我相信我用 SQLDataReader 做的一切都是正确的。代码是:

我使用 System.Diagnostics.Stopwatch 来计时这两种方法,命令行实用程序(从 C# 代码调用)似乎更快(20-40%?)。SqlDataReader 有一个简洁的特性,即当再次调用相同的代码时,它的速度很快,但对于这个应用程序,我们没有预料到。

我已经对这个问题进行了一些研究。我注意到命令行实用程序 sqlcmd 使用 OLE DB 技术来访问数据库。这比 ADO.NET 快吗?我真的很惊讶,特别是因为命令行实用程序方法涉及启动一个进程。我真的以为它会更慢。

有什么想法吗?

谢谢,戴夫

0 投票
3 回答
3176 浏览

sql-server - 如何使用 SQLCMD 从本地文件插入二进制数据?

作为部署脚本的一部分,我需要将文件中的二进制数据插入到 SQL Server 中的 varbinary(max) 列中。

该文件在本地计算机上,SQL Server 在远程计算机上。

这是数据表定义

我需要类似这个伪命令的东西

即数据取自本地文件。

我怎样才能做到这一点?

0 投票
1 回答
427 浏览

visual-studio-2008 - 在 VS DBPro 中动态读取文件(使用 SQLCMD)

我正在使用 VS2008 DBPro。在我的 PostDeploy 文件中,我有很多这样的行

我想要的是创建一个变量 ProjectName,这样我就可以轻松部署不同的项目数据。像这样的东西(不起作用)

如果我可以在不指定路径的情况下读取文件夹中的所有文件,那就更好了。

0 投票
3 回答
1944 浏览

scripting - 如何在powershell中包含“:”作为参数?

我有一个简单的 powershell 脚本,像这样

但我总是收到错误信息

我发现这是":"争论中的问题,但我不知道如何逃避它。

谢谢,大卫

0 投票
1 回答
411 浏览

c# - 从 CruiseControl.NET 执行 sqlcmd 时未应用参数

好的,这就是场景。

CruiseControl.NET(版本:1.5.7256.1)运行一个项目来重建数据库。CruiseControl.NET windows 服务作为我们为 CC.NET 创建的 windows 用户运行。项目中有几个任务,但它们都运行良好。但是,运行的任务之一是我用 C# 编写的基于控制台的实用程序,它生成一个批处理文件,然后通过 .NETProcess类的实例运行它。

批处理文件已正确生成,并且该过程在 C# 中运行良好。但是,运行的批处理文件为 SQLServer(版本 2005 SP3)运行 sqlcmd 命令行实用程序。sqlcmd 按预期运行,但从未应用 sqlcmd 的选项之一... -I(打开带引号的标识符)。

例如

奇怪的是,如果我从持续集成服务器上的命令提示符运行它,它会在应用 -I 的情况下运行。

我很困惑。我会理解是否sqlcmd失败是因为执行该进程的用户没有足够的权限,如果 SQLServer 身份验证失败,我会理解 SQLServer 端是否出现问题,但它可以工作但不应用sqlcmd选项神秘。