我正在尝试与来自issue 2016数据库实例的外部Informix数据源进行通信,以发出日期绑定查询。为了做到这一点,我要做以下工作:
--enter code here
declare @date_string varchar(10)
set @date_string = '08/01/2018'
-- this statement works
SELECT * FROM OPENQUERY ([ExternalLinkedServer], 'SELECT FIRST 10 * FROM informix.anydetailtable');
-- this
我使用下面的打开查询从链接的服务器获取数据。
select * from openquery(HH2, 'select * from "!Root"."!All".RAWDATA' )
WHERE quality = 0 and TAGNAME LIKE '%OBTS_data%' AND TIMESTAMP <= '2022-10-10 13:27'
我需要将其限制在对数据库值的尊重上,这意味着一旦数据库值中的所有项都可用在一列中,查询就应该停止执行。
查询输出类似于
数据库看起来就像
我看到了一些似乎与我的解决方案很接近的答案,但它们使用的是代码,如果可以的话,我更愿意使用SQL。我大致知道需要什么,但我以前从未见过有人在SQL中这样做。我正在构建一个表,但我不想手工设置每个列名。其结构将与此类似:
ID - BIGINT - Primary Key - Seed Increment 1 start at 1
Email - NVARCHAR(500) do not allow null
Board_Name - NVARCHAR(100) - Do not allow null
Tile_1 - BIT - Do Not Allow Null
Tile_2 - BIT
我有一个存储过程(SP),我在其中传入一个值。在此SP中,我尝试从链接/远程服务器上的另一个SP的结果创建/填充临时表。也就是说,我正在尝试执行SP中的一个SP,并填充一个我的查询将使用的临时表。
我尝试过使用以下语法,但它不起作用,因为它似乎不喜欢"+“或@param1参数。
select * into #tempTable
from openquery([the Linked server],'exec thelinkedSPname ' + @param1)
如果我将参数值硬编码到这里,它就能正常工作。
select * into #tempTable
from
我已经创建了一个数据类型,并声明了一个此类型的表,我打算将其作为参数传递给OPENQUERY语句。OPENQUERY返回对象没有列的错误。 首先,表参数定义如下: CREATE TYPE LooseTimecardsTableType AS TABLE ([LABORKEY] [float] NULL)
GO
DECLARE @DataTable AS LooseTimecardsTableType
INSERT INTO @DataTable
SELECT DISTINCT WOBase.LABORKEY
FROM Lab_WO_DataWH AS WOBase
l
我尝试使用OPENQUERY从MySQL获取一些数据,但我需要将结果放入临时表中进行操作。
我尝试了几个示例,但得到了相同的错误:
DECLARE @lastid int = (SELECT MAX(remoteid) FROM cdr)
DECLARE @TSQL varchar(8000)
SELECT @TSQL = 'SELECT * FROM OPENQUERY([PBXA_MYSQL],''SELECT * INTO #tempcdr FROM asterisk.cdr WHERE id > ''''' + C
我正在使用SQL Server2012。我被分配了一项任务,其中表Sample的一列(JsonText)包含json数据。我想传递解析数据并插入到另一个表(Test)的列中。我在网上搜索了一下'openjson‘is supported in SQL Server 2016。在SQL Server 2012中该如何做?
Table1 :示例
Id JsonText Active
JsonText
webaddress?{'data':'{"PId": "XXXX","Status": "YES",
我在构建一个动态sql字符串以运行openquery时遇到了问题。当我打印查询字符串时,它将变量名计算为字符串,而不是实际值。我现在拥有的是:
Declare @tsql varchar(1000)
Declare @book_review_start as date
Declare @book_review_end as date
set @book_review_start = convert(varchar(10),DATEADD(month, DATEDIFF(month, 0, GETDATE())-2, 0), 120)
set @book_review_end = c
我已经存储了发送字符串w/引号的proc,可以:
ALTER PROCEDURE [dbo].[Proc] @Store char(5)
AS
BEGIN
SELECT * FROM OPENQUERY(Server, 'SELECT * FROM T WHERE Store = ''MA009'' GROUP BY Store')
END
如何在openquery字符串中插入@Store?以下不工作
ALTER PROCEDURE [dbo].[Proc] @Store char(5)
AS
BEGIN
SELECT * FROM OPENQU
这个查询需要很长时间运行。有人知道怎么把它们放快一点吗?
DECLARE @actual as INT
DECLARE @expected as INT
DECLARE @ID as INT
DECLARE @TSQL varchar(100)
DECLARE @t table (c int)
DECLARE @Id_aux varchar(100)
SET @ID = (select max(id) from [STG].table where fk_country = 5 )
SET @Id_aux= CONVERT(NVA
我目前正试图通过ODBC通过SSRS运行报告。
我预期查询将运行,因为SQL是有效的,但是看起来SSRS将参数名称传递回SQL查询,而不是id expect中的参数值,请考虑下面的查询。
SELECT x.Col_1, y.Col_2, x.Col_3, x.Col_4
From x_table as x
JOIN Y_table as y on x.Col_4 = y.Col_4
WHERE x.Col_4 = @Col_4
AND x.col_3 >= @From and x.col_3 < @To
AND x.col_2 >= @From and x.col
我有一个与R2 5.5服务器链接的SQL 2008 MySQL服务器。当我尝试将文本列从SQL server插入到MySQL服务器的文本列中时,它将失败。查询-
INSERT INTO OPENQUERY(MYSQL, 'SELECT bio FROM d.test')
SELECT bio FROM test.dbo.ARTIST
where art_no = 3
Server中的bio列为text - SQL_Latin_General_CP1_CI_AS类型,而MySQL服务器中的bio列为文本字符集Latin1排序规则- latin1_general_ci类型。
我所犯
我正在尝试编写一个为表生成动态视图的存储过程。为此,我将生成的视图存储在NVARCHAR(MAX)类型变量中。但由于大小限制,变量正在被截断。
我尝试了一些技巧方面的工作,但这些技术似乎都不适合我。我不能将变量分割成块,因为我不知道变量的大小,我想编写一个生成视图的通用逻辑。
这是代码片段-
DECLARE CURTABLE CURSOR FOR
SELECT A
FROM TABLE A
WHERE ID = 189
Order By ID
OPEN curTable
FETCH NEXT FROM curTable INTO @columnname
DECLARE
假设我有is_return_foo、is_return_bar和is_return_baz列。
如果上述任何列分别设置为true,则需要返回foo、bar、baz列.
CASE WHEN是最好的选择吗?
类似于:
SELECT
CASE is_return_foo WHEN true THEN foo ELSE null
CASE is_return_bar WHEN true THEN bar ELSE null
CASE is_return_baz WHEN true THEN baz ELSE null
another_column
FROM
m
我试图使用以下方法从events表中删除一些行。
DECLARE @PRODUCTION_ID int = 13811
DELETE openquery(TEST,
'SELECT p.id as production_id FROM EVENTS ev
LEFT JOIN production_seasons ps ON ev.production_season_id = ps.id
LEFT JOIN productions p ON ps.production_id = p.id')
where production_id = @PRODUCTION_ID
但是,
对于Server单元测试,在计算“获取所有行”存储过程的结果时,我试图抑制返回所有行。为此,我试图将结果写入临时表。
我从指向当前服务器和数据库的链接服务器条目开始。
IF NOT EXISTS (SELECT * FROM sys.servers WHERE NAME = 'DB_LOCAL')
BEGIN
DECLARE @DBNAME VARCHAR(MAX) = (SELECT DB_NAME())
EXEC sp_addlinkedserver @server = 'DB_LOCAL', @srvproduct = ''