- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下查询,使用 OPENQUERY
执行:
DECLARE @DOMAIN NVARCHAR = N'XXX'
DECLARE @QUERY NVARCHAR(MAX)= '
SELECT * FROM OPENQUERY( [XX\XX],''
SELECT CONCAT(CONCAT([Firstname],''),[Lastname]) AS [Owner]
FROM [Employee] '')'
EXECUTE XX_executesql @QUERY
当我执行时,我收到以下错误:
Msg 102, Level 15, State 1, Line 4 Incorrect syntax near ')'. Msg 105, Level 15, State 1, Line 5 Unclosed quotation mark after the character string ')'.
最佳答案
如果您打印 @Query
值,您将看到错误根。所以如果你运行下面的代码:
DECLARE @DOMAIN NVARCHAR = N'XXX';
DECLARE @QUERY NVARCHAR(MAX)= '
SELECT * FROM OPENQUERY( [XX\XX],''
SELECT CONCAT(CONCAT([Firstname],''),[Lastname]) AS [Owner]
FROM [XXX].[dbo].[Employee] '')'
PRINT @QUERY
你会得到以下结果:
SELECT * FROM OPENQUERY( [XX\XX],'
SELECT CONCAT(CONCAT([Firstname],'),[Lastname]) AS [Owner]
FROM [XXX].[dbo].[Employee] ')
现在很清楚为什么 SQL Server 会返回
Unclosed quotation mark after..
要解决这个问题,您需要记住,为了在字符串变量的输出中有一个单引号,您需要放置两个单引号。
现在你需要改写如下:
DECLARE @DOMAIN NVARCHAR = N'XXX';
DECLARE @QUERY NVARCHAR(MAX)= '
SELECT * FROM OPENQUERY( [XX\XX],''
SELECT CONCAT(CONCAT([Firstname],''''),[Lastname]) AS [Owner]
FROM [XXX].[dbo].[Employee] '')'
PRINT @QUERY
上述查询将产生:
SELECT * FROM OPENQUERY( [XX\XX],'
SELECT CONCAT(CONCAT([Firstname],''),[Lastname]) AS [Owner]
FROM [XXX].[dbo].[Employee] ')
您现在可以简单地将 Print
替换为 EXECUTE
命令并执行它!
关于sql-server - 字符串 ')' 后的未闭合引号 - OPENQUERY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56627517/
我正在使用在 SQL Server 2005 上运行良好的 Openquey,我有 1 台服务器是 SQL Server 2008,但它无法正常工作。 如果我运行以下命令: SELECT * FROM
我有下面的 openquery,它工作正常,但现在我只想使用 gl_trans.gl_trans_date 选择事务 >= '2017-07-01' 但无法获取正确的语法。后台数据库为Informix
我想将数据从 MS SQL Server 数据库传输到 MySQL 数据库。因此,我向 MS SQL 添加了一个链接服务器,以便我可以使用 Openquery 将数据插入 MySQL 数据库。我想优化
我有一个链接到 MSSQL 服务器的 MySQL 服务器,我正在尝试将数据插入 MySQL 服务器上的表 admin_user,但最终出现错误: Cannot process the object "
如何使用表变量作为 OPENQUERY 的参数 就像是: DECLARE @TSQL VARCHAR(8000) DECLARE @VAR TABLE (VAR1 VARCHAR (2)) INSER
我们正在尝试迁移到 SQL Server 2014。有几种情况我们需要使用 OpenQuery 来返回动态结果。结果集会根据不同的输入参数而有所不同。它在 sql 2008R2 中工作,我需要让它继续
如何在sql openquery中使用参数,例如: SELECT * FROM OPENQUERY([NameOfLinkedSERVER], 'SELECT * FROM TABLENAME whe
我已经尝试过这段代码,但仍然出现以下错误,也许有人可以帮忙? UPDATE a SET a.MMDWNO = '21' FROM OPENQUERY(NMIIFLIB, 'se
我有带有链接 Sybase 服务器的 SQL Server 2008,并且我正在尝试使用 OPENQUERY 在 Sybase 服务器上执行存储过程。如果我有一个不带参数的存储过程,它会成功。如果我有
我正在编写一个脚本,该脚本应该在一堆服务器周围运行并从中选择一堆数据,包括本地服务器。选择我需要的数据所需的 SQL 非常复杂,所以我正在编写一种临时 View ,并使用 OPENQUERY 语句来获
我正在尝试学习 openquery。我有一个 MSSQL 服务器,它有一个链接服务器 MySQL_testing。现在我整个早上都在与 openquery 语法作斗争,我想这里可能有更聪明的人知道它是
我有两个数据库MSSQL和MYSQL 我想将数据从 MYSQL 传输到 MSSQL,因此我在它们之间创建了链接服务器 在这一步之前我没有任何问题 我编写了以下代码,用于从 MYSQL 获取数据并插入到
我有一个动态存储过程,它为 OpenQuery 创建 mdx 语句。因此,mdx 语句中的对象可能为空。在本例中,我想要返回一个空字符串。 通常,查询会正常工作,除非我选择 future 的日期,在这
我的 MSSQL 触发器: ALTER TRIGGER [dbo].[ioTrigger_dbo_vsolv_mst_tproddtchng] ON [dbo].[vsolv_mst_tproddtc
我有一个OPENQUERY语句 SELECT * FROM OPENQUERY (NETLINE, 'SELECT * FROM XCREW.CTNAISV_HOTEL
我正在尝试使用“OPENQUERY”从 MS SQL Server 将记录插入 MySQL 数据库,但我正在尝试做的是忽略重复键消息。因此,当查询遇到重复项时,请忽略它并继续。 我可以做些什么来忽略重
不确定,这是否应该在 Stack Overflow 或 DBA 部分进行。 我正在编写的程序有问题。我有一个变量,可以说: SET @name sysname --also tried to make
我目前每天使用以下数据仓库一个表: DROP TABLE mytable SELECT firstcolumn, secondcolumn INTO mytable FROM OPENQUERY (m
试图找出为什么两者之间存在如此显着的差异 从linkedserver..tablename中选择* 和 select * from openquery(linkedserver, select * f
我需要使用参数(例如@PickedDate)从链接服务器检索数据。如果我跳过 @A 和 @B,查询工作正常,但由于缺少单引号,它总是返回错误。请指教,谢谢。 查询: Declare @OPENQUER
我是一名优秀的程序员,十分优秀!