通过 osql.exe 运行脚本时出现问题

2024-06-19

我尝试以这种格式运行我的软件的更新脚本:

osql.exe -i "path\to\script" -U "用户" -P "密码" -S "sqlserver 位置" -d "数据库名称" -n -b

大多数脚本的格式相同,并且都以 GO 结尾。其中很多都运行得很好,但随机脚本总是返回错误并且无法运行。错误是“第 1 行‘∩’附近的语法不正确。脚本可能就像插入一样简单,但总是这个错误。我似乎无法在网上找到任何可以帮助我的内容。任何人都可以提供任何见解吗?

这些脚本手动运行得很好。另外有趣的是,如果我创建一个新的文本文档并将脚本粘贴到新文件中并将其更改为 .sql 并运行该文件,那么它就可以正常工作。我只是对所有“损坏”的脚本执行此操作,但它会继续发生在新脚本上,并且最终也会发生在更改的脚本上。


很可能是因为文件编码为 Unicode 而不是 UTF-8。您可以在 Notepad++ 以及其他免费实用程序中查看这一点。尝试将其转换为 UTF-8,看看是否有帮助。

UPDATE

更正:正如评论中链接的文章所解释的,osql 可以解析编码为 UTF-16 (Unicode 1200) 或“ANSI”(Windows-1252) 的文本文件,但无法解析 UTF-8 编码的文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 osql.exe 运行脚本时出现问题 的相关文章

  • SQL数据库数据排序

    我能够获取名字和姓氏的组合长度以及按 ID 排序 但我无法按字典顺序对其进行排序 SELECT CUSTOMER ID CUSTOMER FIRST NAME CUSTOMER LAST NAME FROM CUSTOMER WHERE L
  • 在数据库中插入具有相同组合框的 2 个函数的字段。仅保存第一个函数的数据

    我有一个用 tkinter 制作的数据库管理器 我在其中插入和保存数据 它工作正常 一切正确 它正确保存一切 我尝试添加新插入 这就是我遇到问题的地方 但是 我无法从同一组合框添加新的字段插入 即同一组合框插入 2 个内容 我用2个不同的c
  • MySQL 获取 ORDER BY 中的行位置

    具有以下 MySQL 表 id INT UNSIGNED name VARCHAR 100 我怎样才能选择一个single行及其在表中其他行中的位置 排序时 name ASC 因此 如果表数据按名称排序时如下所示 id name 5 Alp
  • MySQL:如何获取行的序列号?

    如何对最低 ID 为 1 最高 ID 为 numberOfResults 的结果进行编号 示例 如果我有一个只有 3 行的表 ID 为 24 87 112 的拉取方式如下 ID 24 87 112 Num 1 2 3 我想要这个的原因是我的
  • 将平面表解析为树的最有效/优雅的方法是什么?

    假设您有一个存储有序树层次结构的平面表 Id Name ParentId Order 1 Node 1 0 10 2 Node 1 1 1 10 3 Node 2 0 20 4 Node 1 1 1 2 10 5 Node 2 1 3 10
  • SQL 表别名 - 好还是坏? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在 SQL 中使用表别名有哪些优点和缺点 我个人会尽量避免使用它们 因为我认为它们会使代码的可读性降低 特别是在阅读大型 where and 语
  • 如何在Java中使用准备好的语句进行选择查询?

    我曾多次尝试使用准备好的语句 但它返回 SQL 异常 这是我的代码 public ArrayList
  • SQL 中最有效的搜索方式?

    我有一个包含 75 000 多行的数据库 每天添加 500 多个条目 每行都有一个标题和说明 我创建了一个 RSS 提要 它为您提供特定搜索词的最新条目 例如http site com rss rss q 披萨 http site com
  • 如何合并不同 MySQL 列中的日期和时间以与完整的 DateTime 进行比较?

    Column d是日期 列t是时间 列v例如 是 INT 假设我需要 2012 年 2 月 1 日 15 00 及之后记录的所有值 如果我写 SELECT FROM mytable WHERE d gt 2012 02 01 AND t g
  • 检查 MySQL 和 PHP 中是否都存在 ids 列表

    最有效的方法是什么MySQL and PHP检查 id 列表是否全部存在 我希望函数返回结果是true if allid 存在 否则false 我刚在想 ids array 2233 5545 9478 5343 3545 do all g
  • 触发器定义中的 DELETE 语句问题

    我创建了一个插入 更新触发器 旨在根据插入的数据更新不同表中的信息 触发器执行 或应该执行 的最后一件事是从目标表中删除所有数据 这些数据的条件在触发器的插入部分期间可能已更改 除了最后的之外 一切似乎都在触发DELETE陈述 它正在执行D
  • 将 Linq 表达式转换为 SQL Server 查询

    我正在使用一些 crm 框架 该框架没有任何内部 orm 并且不使用实体框架 仅使用纯 sql 查询 我在数据库中的每个表都有实体 所以我有例如 public class Customer public string FirstName g
  • GRANT EXECUTE 所需的权限

    我正在为需要能够创建和删除过程但也向其他用户授予执行权限的用户创建一个组 GRANT CREATE PROCEDURE TO xxx xxx GRANT ALTER ON SCHEMA dbo TO xxx xxx 但是 我需要向组授予什么
  • 查找每个客户组的最新帐户

    我有一个包含客户信息的表 每个客户都会分配一个客户 ID 他们的 SSN 他们在开设更多帐户时会保留该 ID 两个客户可能使用同一个帐户 每个客户都有自己的 ID 帐号不按日期排序 我想找到每个客户或客户组的最新帐户 如果两个客户曾经一起使
  • SQL CASE 语句

    我有以下查询 我想将它们放入 sql CASE 语句中 这样我只有一个查询 但我不知道该怎么做 有人可以帮助我吗 IF SELECT EtlLoadId FROM ssislogs audit processcontrol WHERE Su
  • 带可选参数的 SQL 更新命令?

    我将大约 500 000 个对象插入数据库 其中许多对象是相同的 在数据库中具有相同的主键表示 但其他字段可能不同 因此我使用方法 更新 如果没有行受影响 插入 问题是 有时一个对象的某些字段设置为 null 从文件中无法读取 并且已经在数
  • 使用绑定变量动态传递表名和列名

    有没有办法使用绑定变量将列名和表名动态传递给查询 这可以通过使用简单的串联运算符来完成 但我想要一种不同的方法来实现这一目标 EDIT OPEN abc cur FOR Select column name from table name
  • Oracle 函数编译成功,但在执行 PLS-00221 时抛出错误:不是过程或未定义

    我有简单的oracle功能 create or replace function abs test func test in in number return number is test out number BEGIN test out
  • SQL Server到Mysql迁移(使用Mysql Workbench)数据传输错误

    我正在使用 Mysql Work bench 6 3 将数据库从 MS Sql server 2008 迁移到 Mysql 在 批量数据传输 期间出错并出现以下警告 这种情况仅发生在像 varchar char 这样的列类型上 当我尝试使用
  • 将表与同一个表的前一条记录连接起来

    我有一个包含历史记录的表 由主表中的多个触发器发布到那里 我想在历史表上创建一个 select 语句 其中每个记录都由其先前的记录 由相同的 LineID 和最高的 ActionDate 标识 连接 这样我就可以提取这两者之间的差异 我尝试

随机推荐