Lors de l'exécution de la requête suivante, le Invalid object name '#temp1'.
peut montrer à n'importe quel corps que l'erreur est survenue, raison pour laquelle c'est le code original que j'ai utilisé pour récupérer le code, ses tables differnt sont formées. tableAffichage de "Nom d'objet invalide" dans sqlServer?
DECLARE @t TABLE (
id int IDENTITY(1,1),
BranchName nvarchar(max)
)
DECLARE @n int = 0,
@i int = 1,
@BranchName nvarchar(max),
@sql nvarchar(max),
@columns nvarchar(max)
INSERT INTO @t
SELECT DISTINCT BranchName
FROM ALX_Branches
SELECT @n = @@ROWCOUNT
WHILE @n >= @i
BEGIN
SELECT @BranchName = BranchName
FROM @t
WHERE id = @i
SELECT @columns = (
SELECT DISTINCT ','+QUOTENAME([SubInventory])
FROM #MyTempTable
WHERE [BranchName] = @BranchName
FOR XML PATH('')
)
SELECT @sql = N'--
SELECT * into #temp1
FROM (
SELECT [BranchID],
[SubInventory],
[Product],
[Stock]
FROM #MyTempTable
WHERE [BranchName] = ''' [email protected] +'''
) as t
PIVOT (
MAX([Stock]) FOR [SubInventory] IN ('+STUFF(@columns,1,1,'')+')
) as pvt'
EXEC sp_executesql @sql
select * from #temp1
vous devez créer votre table d'abord, puis il sera disponible dans la dynamique sql - d'ici http://stackoverflow.com/ questions/2917728/t-sql-dynamic-sql-and-temp-tables –
'PIVOT ( MAX ([Stock]) POUR [SousInventaire] IN ('+ STUFF (@ columns, 1,1,' ') +') 'cela, peut être changer à chaque fois, selon les branches, alors comment puis-je créer une table stable pour ce –
IDK :) essayer d'utiliser une simple table persistante et le laisser tomber après ... hm? –