问题标签 [osql]

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 回答
1655 浏览

sql-server - T-SQL - 列出网络内所有服务器上的所有数据库

我正在尝试审核网络,以查找和清理可能已经过测试和遗忘的旧数据库。

现在,我知道我可以SQLCMD -L用来查看服务器和实例。如果 Management Studio 连接到服务器,我可以使用 exec sp_helpdb 获取服务器名称、数据库名称、大小、所有者、创建和状态。

这两者本身都很棒,但是它们需要连接到 MGMT Studio 中的每个服务器,然后针对注册的服务器组运行以下查询。

我希望创建以下查询的循环以遍历所有SQLCMD -L找到的数据库,以便我可以发送审核结果进行清理,可能通过 SQLCMS/OSQL,以避免手动连接过程。我可能还必须为他们制定适当的登录帐户,所以如果在这个混乱中可以选择,那也很好(Sa、Win Auth、SQL Auth 等)

如果有人对将其作为自动化过程运行的解决方案有一些建议,将不胜感激。

0 投票
1 回答
953 浏览

sql - 什么 cmd 命令我可以对我的 OSQL 输出文本文件使用 ANSI 格式?

我在 .bat 文件中运行 OSQL 命令,我正在运行我的 SQL 脚本并在文本文件中生成输出,但是文件中的数据是分散的,我想生成与我可以通过 SQL 生成的格式相同的文件手动服务器。

我也尝试过 .rpt 和 .txt 格式,但仍然面临同样的问题。

因此,如果有人可以建议任何命令或任何替代方式,以便我可以生成与通过 SQL 服务器手动生成的文件相同的文件。

任何建议或想法表示赞赏。

谢谢。

0 投票
0 回答
437 浏览

sql - 使用 osql -q 恢复 SQL Server 数据库

当我使用 1 个或 2 个磁盘时,我正在尝试使用以下命令恢复多个磁盘/媒体备份,这很好。在这种情况下,我使用的是 23。它失败并出现错误查询太长。找不到任何好的解决方案。请帮助。

0 投票
1 回答
3982 浏览

sql-server - 使用 FreeTDS 和 UnixODBC。能够连接但不能执行来自 isql 或 RODBC 的任何 SQL 命令

这个真的开始难倒我了。我正在运行 Ubuntu 12.04 并尝试连接到运行 MS SQL server 2012 的机器。首先,我将提供一些有关我的设置的信息:

我的 freetds.conf:

设置好我的 freetds.conf 后,我首先测试我与 tsql 的连接,它产生了预期的(和受欢迎的)提示:

所以我的 FreeTDS 设置似乎工作正常。接下来我设置 odbc.ini 和 obdcinst.ini:

odbc.ini:

odbcinst.ini:

在此设置之后,我运行 osql 进行检查。它输出所有预期的响应,它能够在 ondcb.ini 中找到驱动程序和正确的段落,例如:

依此类推,直到:

osql 似乎没有检测到 odbc.ini 中的服务器名称。

完成此检查后,我可以通过 isql 进行连接,但无法运行任何 SQL 命令。我收到以下错误:

我试过的:

A.) 几乎所有的配置和命名约定都可以在 freetds.conf 和两个 .ini 文件中想到。发布更改我执行上面相同的测试并得到相同的结果

B.) 在 isql 之外重现错误。ROBC 给了我完全相同的错误。当然,这是意料之中的,但我想为什么不

C.) 除了 MS SQL Server 之外的 SQL 变体。我想以防万一有人错误地通知我,我也在那里尝试了一些 MySQL 命令。这可能是一个 SQL 问题,但我不确定。

D.) 我最接近发现与 osql 吐出的类似错误(我猜是结果)是here。正如上一篇文章中所建议的那样,问题,至少就它与 osql 的响应相关而言,可能与awk. 正如建议的那样,我awk通过创建一个变量并尝试解析服务器名来进行测试:

这应该导致SERVER但我得到“”。

那是我的全部了。总之,OSQL 似乎无法在 odbc.ini 中找到服务器名称,这可能会也可能不会导致我无法执行来自 ISQL 或 ROBC 的任何命令。我开始怀疑这些问题是不相交的,但任何帮助将不胜感激。

编辑:2014 年 7 月 31 日 让这一切正常工作。除了我强调的内容之外,还有一些其他问题正在发生。我最终不得不在 Mac 和 Linux 机器上建立类似的连接。以下是两者的说明:http: //www.joecjr.com/2014/07/27/install-and-use-freetds-unixodbc-and-rodbc-or-pyodbc/

0 投票
1 回答
620 浏览

sql - 如何从 SQLCMD 或 OSQL 获取输出?

到处找……无济于事。

我正在尝试从命令行使用 SQLCMD 进行基本选择:

sqlcmd -S myServer -d myDB -E

到目前为止,一切都很好。

select * from myTable

没什么,直接进入下一行。它不应该显示一个带有值的表格吗?或者至少“返回 n 行”?

我还尝试了 -o 参数:它创建了一个空文件。

0 投票
1 回答
860 浏览

installation - 使用 OSQL 执行 SQL 脚本不返回结果代码

我正在OSQL通过 inno setup 执行一些 sql 查询。我正在使用以下代码运行OSQL。这仅用于示例目的

这工作正常。问题是ResultCode值始终为 0。即使查询没有被执行。例如,如果我尝试像下面这样的相同查询,其中我传入了一个无效的存储过程名称,ResultCode它仍然是 0。

为什么不给我一个正确的代码。如果我在管理工作室中运行第二个查询,我会收到这样的错误

Msg 2812, Level 16, State 62, Line 1 Could not find stored procedure 'sp_invalidname'

这里的返回码是2812. 当我通过 inno 运行它时,为什么我没有得到这个。我需要做什么才能在 inno 中获取此错误代码?

0 投票
1 回答
674 浏览

sql-server - OSQL 实用程序 - 将过程移植到 SQL Server 2014

我有一个存储过程作为 SQL Server 2008 上的计划作业运行,我正在尝试将其迁移到 SQL Server 2014。

该过程生成 html 并使用来自本地数据库的值填充 html。计划的作业运行此过程并保存 html 文件。

存储过程在 SSMS 中的 SQL Server 2014 上运行良好,我看到了带有 html 标记和 db 值的打印。

我的问题是,当我使用上述 OSQL 命令安排作业时,会生成 html 文件并正常保存,但缺少 db.xml 中的值。

是否有人知道 osql 中可能存在问题的任何更改,或者对 sa 用户的新限制?

0 投票
3 回答
13158 浏览

sql - 使用 osql 运行查询

执行以下任一命令时:

我收到以下错误:

但是,我可以毫无问题地SELECT从 SSMS 登录和运行查询。

如何使用 osql 对 SQL Server 2008 运行查询?

0 投票
1 回答
591 浏览

sql-server - ADODB COM 对象为位值 1 返回 -1

我正忙于尝试使用 ADODB 作为在客户数据库上编写准备好的脚本的一种方法,因为它比使用 sqlcmd 的批处理脚本要好得多。

早期我注意到有时 ADODB 结果与 osql 或 sqlcmd 给出的结果不同,在进一步调查中我发现它似乎总是在包含布尔值的列中。如果我运行以下代码,我会得到-1:

根据MSDNw3schools文档,在逻辑上它应该返回 1,SQL 服务器上的位数据类型包含 1、0 或 null。

谁能解释一下是什么原因造成的以及如何预防?

如果导入也使用 ADODB 完成,从我的数据库中导出信息然后导入 -1 而不是 1 会导致问题吗?

0 投票
1 回答
36094 浏览

sql - 文件的目录查找失败,出现操作系统错误 3(系统找不到指定的路径。)

我正在尝试从一个 SQL 服务器(Source)重新创建一个数据库(MyDB)到另一个 SQL 服务器(Target)。位于我的本地计算机上,是 SQL Server 2014。目标位于远程计算机上,它是 SQL Server 2012。以下是我采取的步骤:

  1. 在我的本地机器上,我转到 SQL Server Management Studio,右键单击 MyDB 并转到 Tasks--> Generate Scripts。
    1. 在那里我选择“脚本整个数据库和所有数据库对象”。
    2. 我单击“下一步”,然后在下一页的“高级”下,选择“架构和数据”。
    3. 这会生成一个包含 MyDB 定义的 SQL 文件 (scripts.sql)。
    4. 然后我使用以下 osql 命令在Target上重新创建数据库:

osql -S 目标 -d 主控 -E -i scripts.sql -o output.log

  1. 执行完成后,我在日志文件“output.log”中收到此错误:

1> 2> 1> 2> 3> 4> 5> 6> 7> 8> Msg 5133, Level 16, State 1, Server Target, Line 2 文件“C:\Program Files\Microsoft SQL Server\ MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDB.mdf”失败,操作系统错误3(系统找不到指定的路径。)。消息 1802,级别 16,状态 1,服务器目标,第 2 行创建数据库失败。无法创建列出的某些文件名。检查相关错误。1> 2> 消息 5011,级别 14,状态 5,服务器目标,第 1 行用户无权更改数据库“MyDB”,数据库不存在,或数据库未处于允许访问检查的状态。消息 5069,级别 16,状态 1,服务器目标,第 1 行 ALTER DATABASE 语句失败。

以下是“scripts.sql”的前几行:

我在Source上抱怨的位置确实有文件 MyDB.mdf ,但在Target上没有。Target上没有目录“MSSQL12.MSSQLSERVER” 。我怎样才能解决这个问题?