【发布时间】:2013-03-24 06:21:53
【问题描述】:
我有一个返回 6 列的存储过程。但我只想取 2 列并将它们插入到我的表变量中。
DECLARE @CategoryTable TABLE(
CategoryId Int NOT NULL,
Name nvarchar(255) NOT NULL
)
INSERT INTO @CategoryTable EXEC [GetAllTenantCategories] @TenantId
当我运行它时
列名或提供的值数与表不匹配 定义
如何从存储过程中只插入指定的列?
我不想使用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
【问题讨论】:
-
您必须更改 @CategoryTable 或 GetAllTenantCategories
-
@bummi,我更改了
@CategoryTable,定义了所有 6 列。我仍然收到Column name or number of supplied values does not match table definition -
@bummi,这是我的错误,在更改
@CategoryTable时,我添加了一个带有IDENTITY(1,1)指定的列 :(
标签: sql sql-server sql-server-2008 azure-sql-database