【发布时间】:2016-01-29 15:24:31
【问题描述】:
我有几个只能使用 sybase 访问的表。我需要编写一个查询,将数据从 7 月提取到指定的日期参数(例如 201507 - 201512)。输入日期参数后,我需要使用名称访问 sybase 上的表: ff_vv_201507_tt 到 ff_vv_201512_tt。
我虽然可能将 yyyymm 作为变量。我不确定如何实现这一点,因为我对 SQL 很陌生。
我尝试从 sybase 访问一个表,但我的代码似乎不起作用:
DECLARE @Table_Name sysname, @DynamicSQL nvarchar(4000)
SET @Table_Name = 'ff_vv_201507_tt'
SET @DynamicSQL = 'select
*
FROM OPENQUERY(SADATABASE, 'select
*
from ' @Table_Name '
)''
EXECUTE sp_executesql @DynamicSQL
非常感谢您的帮助。
谢谢
【问题讨论】:
-
了解您使用的 Sybase 的产品和版本会很有帮助,因为并非所有产品都支持动态 SQL。如果您不确定,请使用
select @@version查找该信息。 -
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) Jun 28 2012 08:36:30 版权所有 (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1
(内部版本 7601:Service Pack 1)(管理程序) -
那你为什么要把Sybase放在标题和标签里呢?
-
我相信 OP 正在 SQL Server 上执行,但另外使用 OPENQUERY 将一些信息从 SyBase 拉入 SQL Server。
标签: sql-server sql-server-2008 tsql dynamic-sql