SQL - 来自另一个数据库

时间:2017-11-22 11:49:23

标签: php asp.net sql-server asp-classic where-in

我熟悉" IN" sql中的子句,例如

select * from table1 where myfield in (select myfield from table2)

我现在在两个数据库之间!我想选择其他数据库中手机在其他记录集中的记录集。我不是直接使用sql server。你可以建议我使用服务器端语言的更复杂的方法,例如php或asp等。

我在经典asp 中的测试(其中connectionObject1连接到第一个数据库,connectionObject2连接到第二个数据库):

sql="select phone from persons"
recordset1.open sql,connectionObject1

sql="select * from persons where phone in ("& recordset1 &")"
recordset2.open sql,connectionObject2
  

Microsoft VBScript运行时错误' 800a000d'

     

类型不匹配

2 个答案:

答案 0 :(得分:2)

您的错误在这里:

sql="select * from persons where phone in ("& recordset1 &")"

您正在尝试连接字符串,但recordset1是一个记录集,顾名思义,而非字符串。

我只是看了这个。您应该能够将记录集转换为GetString字符串,因此:

sql = "select * from persons where phone in (" & 
        recordset1.GetString(adClipString, -1, ",", ",") &
      ")"

如果手机不是数字,则需要其他引号:

sql = "select * from persons where phone in (" & 
        "'" &
        recordset1.GetString(adClipString, -1, "','", "','") &
        "'" &
      ")"

我可能会误解语法。在这种情况下,请查看您的文档。

答案 1 :(得分:1)

在SQL中使用完全限定的对象名称,这应该有效:

sql="select * from [DB1Name].[SchemaName].persons where phone in (select phone from [DB2Name].[SchemaName].persons)"