- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在sql openquery中使用参数,例如:
SELECT * FROM OPENQUERY([NameOfLinkedSERVER], 'SELECT * FROM TABLENAME
where field1=@someParameter') T1 INNER JOIN MYSQLSERVER.DATABASE.DBO.TABLENAME
T2 ON T1.PK = T2.PK
最佳答案
来自OPENQUERY文档指出:
OPENQUERY does not accept variables for its arguments.
查看此article寻求解决方法。
更新:
根据建议,我添加了下面文章中的建议。
传递基本值
当基本 Transact-SQL 语句已知,但您必须传入一个或多个特定值时,请使用类似于以下示例的代码:
DECLARE @TSQL varchar(8000), @VAR char(2)
SELECT @VAR = 'CA'
SELECT @TSQL = 'SELECT * FROM OPENQUERY(MyLinkedServer,''SELECT * FROM pubs.dbo.authors WHERE state = ''''' + @VAR + ''''''')'
EXEC (@TSQL)
传递整个查询
当您必须传递整个 Transact-SQL 查询或链接服务器的名称(或两者)时,请使用类似于以下示例的代码:
DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000), @LinkedServer nvarchar(4000)
SET @LinkedServer = 'MyLinkedServer'
SET @OPENQUERY = 'SELECT * FROM OPENQUERY('+ @LinkedServer + ','''
SET @TSQL = 'SELECT au_lname, au_id FROM pubs..authors'')'
EXEC (@OPENQUERY+@TSQL)
使用 Sp_executesql 存储过程
为避免多层引号,请使用类似于以下示例的代码:
DECLARE @VAR char(2)
SELECT @VAR = 'CA'
EXEC MyLinkedServer.master.dbo.sp_executesql
N'SELECT * FROM pubs.dbo.authors WHERE state = @state',
N'@state char(2)',
@VAR
关于sql - 在 OPENQUERY 中包含参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3378496/
我正在使用在 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
我是一名优秀的程序员,十分优秀!