我有一个 SQL Server 和缓存服务器,需要合并一些数据。大多数功能都在工作,除非我尝试使用变量或参数传递日期。
下面是我运行的一个测试(其中一个)。
declare @myDate datetime
set @myDate = convert(datetime,'2012-02-01',120)
select * from ccms..dbo.dcdnstat where timestamp > '2012-02-01' -- WORKS
exec( 'select * from dbo.dcdnstat where cdn = ?', 21004) at ccms -- WORKS
exec( 'select * from dbo.dcdnstat where timestamp > ?',@myDate) at ccms -- ERROR 7213
select * from ccms..dbo.dcdnstat where timestamp > @myDate -- ERROR 7322
消息 7213,级别 16,状态 1,第 9 行提供程序尝试将远程存储过程参数传递给远程服务器“ccms”失败。验证参数的数量、顺序和传递的值是否正确。消息 7322,级别 16,状态 2,第 11 行 向链接服务器“ccms”的 OLE DB 提供程序“MSDASQL”提供参数信息时发生故障。
我尝试了不同的日期格式,如上所示,我可以使用变量查询其他字段,如果我使用特定值,我可以查询日期。