sql - 从过程中仅选择几列并插入表中

标签 sql sql-server sql-server-2008 azure-sql-database

我有一个返回 6 列的存储过程。但我只想取 2 列并将它们插入到我的表变量中。

DECLARE @CategoryTable TABLE(   
CategoryId Int NOT NULL,   
Name nvarchar(255) NOT NULL   
)  

INSERT INTO @CategoryTable EXEC [GetAllTenantCategories] @TenantId  

当我运行它时

Column name or number of supplied values does not match table definition

如何从存储过程中只插入指定的列?

我不想使用 SELECT INTO,因为 SQL Azure 不支持它

在下面尝试并得到 Invalid object name '#Temp'

DECLARE @CategoryTable TABLE(   
CategoryId Int NOT NULL,   
Name nvarchar(255) NOT NULL   
)  
INSERT INTO #Temp EXEC [GetAllTenantCategories] 1 

INSERT INTO @CategoryTable (CategoryId, Name) 
SELECT CategoryId, Name from #Temp

DROP TABLE #Temp

最佳答案

您可以先创建一个temp 表,然后在您的表变量INSERT 所需的列。

CREATE TABLE #temp
(
   your columns and datatype
)


INSERT INTO #temp
EXEC [GetAllTenantCategories] @TenantId

那么你可以,

DECLARE @CategoryTable TABLE(   
 CategoryId Int NOT NULL,   
 Name nvarchar(255) NOT NULL   
 )  

INSERT INTO @CategoryTable (CategoryId, Name)
select CategoryId, Name from #temp

同时删除#temp 表,

DROP TABLE #temp

关于sql - 从过程中仅选择几列并插入表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15595788/

相关文章:

sql - DB2 多列的唯一约束

SQL连接同一个表的列

sql-server - 是否可以访问 FILESTREAM 共享?

sql - 只允许两个表之一引用基表的约束

c# - Dapper 错误将 tinyint 解析为短?

MYSQL 检查所有表 1 条目是否有表 2 条目

sql - 如何在 Visual Studio 中执行单元测试之前执行 SQL 脚本来准备数据库

sql-server-2008 - Web2Py 不会连接到 MSSQL

sql - 通过表IMPALA之间的ORDER BY

sql - 显示与另一个表 sql server 不匹配的空值