Sql server 将本地数据插入SQL Server临时表

Sql server 将本地数据插入SQL Server临时表,sql-server,sql-server-2005,ms-access,odbc,ms-access-2007,Sql Server,Sql Server 2005,Ms Access,Odbc,Ms Access 2007,我有几个存储过程,它们使用临时表来读取ID列表以执行更新。我还有一个本地查询,其中包含我希望传递给其中一个存储过程的ID列表。有没有办法做这样的事 INSERT INTO #MyBackendTempTable SELECT ID FROM MyLocalQuery 我想我可以通过在VBA中循环记录集来实现这一点,如果有必要的话,我会这样做,但如果有一个明智的方法来实现这一点会更好。我知道Access可以进行直通查询,但据我所知,它们只能作用于服务器上的对象。有什么简单的方法我不知道吗?如果查

我有几个存储过程,它们使用临时表来读取ID列表以执行更新。我还有一个本地查询,其中包含我希望传递给其中一个存储过程的ID列表。有没有办法做这样的事

INSERT INTO #MyBackendTempTable
SELECT ID
FROM MyLocalQuery

我想我可以通过在VBA中循环记录集来实现这一点,如果有必要的话,我会这样做,但如果有一个明智的方法来实现这一点会更好。我知道Access可以进行直通查询,但据我所知,它们只能作用于服务器上的对象。有什么简单的方法我不知道吗?

如果查询真的那么简单,并且您只有一组ID(一列),那么您可以在前端构建一个逗号分隔的列表,然后将其传递给后端的存储过程,并使用您最喜欢的拆分机制()对其进行拆分。您的存储过程将是(假设#temp表以前是在同一范围内创建的):

在前端,您将构建一个逗号分隔的列表来传递给该参数

或者,您可以基于spid、应用程序实例以及您所拥有的内容,使用具有某个键的永久表—假设您可以唯一地标识每个用户。然后你会做:

INSERT dbo.MyBackEndPermanentTable(Session, ID)
  SELECT 'SessionSomething', ID
  FROM MyLocalQuery;

在SQLServer2008中,您可以使用TVPs。你为什么还在用2005?亚伦:也许是因为很多大军团都用真正的斯洛。我去年工作的公司正在从2000年搬到2005年@阿伦伯特朗我很乐意,我正在用我的力量进行这项工作。但是现在,我必须用我所拥有的来工作。很好。我非常喜欢第二种选择。考虑到我已经在后端使用了几个临时表,我应该自己考虑一下。谢谢
INSERT dbo.MyBackEndPermanentTable(Session, ID)
  SELECT 'SessionSomething', ID
  FROM MyLocalQuery;