Sql server 如何将sp_executesql的结果插入到插入期间要创建的表中?

Sql server 如何将sp_executesql的结果插入到插入期间要创建的表中?,sql-server,tsql,Sql Server,Tsql,我有sql语句,我通过探查器从Linq捕获到sql。它们看起来像EXEC sp_executesql N'SELECT….'这些语句包括参数类型和单引号 有没有办法从这样的语句中获取输出并将其插入到一个不存在的表中? 与SQL的Select column1、column2.类似。。插入到表2中的tablename中,SQL Server在插入过程中在表2中创建输出表?我在一次会话中多次使用不同的语句来执行此操作,因此我正在寻找最快的方法,以减少键入的次数。SQL Server 2012这个技巧应

我有sql语句,我通过探查器从Linq捕获到sql。它们看起来像EXEC sp_executesql N'SELECT….'这些语句包括参数类型和单引号

有没有办法从这样的语句中获取输出并将其插入到一个不存在的表中? 与SQL的Select column1、column2.类似。。插入到表2中的tablename中,SQL Server在插入过程中在表2中创建输出表?我在一次会话中多次使用不同的语句来执行此操作,因此我正在寻找最快的方法,以减少键入的次数。SQL Server 2012

这个技巧应该可以

SELECT
  *
INTO
  #tt
FROM
  OPENROWSET('SQLNCLI','Server=(local);UID=<login>;Pwd=<password>;','SET FMTONLY OFF; <your query>;');

您应该能够将EXEC sp_executesql N'…'放置在EXEC的位置。嗯。

我不知道你为什么要在那里设置fmtonly。我以前使用过openrowset,但由于单引号的缘故,一直出现错误。这是我现在使用双引号的解决方案:将SELECT*上的QUOTED_标识符从OPENROWSETSQLNCLI设置为tt,Server=local;可信连接=是;,exec sp_executesql N'select*from…';;在select*from上设置QUOTED_标识符tt@Tony_Henrich嗨,Tony,我曾经遇到过一次问题,就是没有在查询前面放一次,所以我一直在使用它的每个实例中添加它。很可能在其他环境中,这是不必要的。您可能在使用单引号时遇到问题,因为如果使用单引号,则必须在参数内使用双引号。如果使用双引号,则不需要这样做。很难用所有的引号来表达这一点:。很乐意帮忙!