0
Je souhaite créer une procédure stockée qui mettra à jour une table. La procédure joindra deux tables et je veux passer le nom de la table en utilisant une variable (@tablename
).Passage du nom de la table à l'aide d'un paramètre dans la procédure stockée SQL Server
Cette erreur est générée:
doit déclarer la variable de table "@tablename".
Mon code:
Create Procedure dbo.SpUpdate (@TableName varchar(50))
as
begin
set @tablename='Customer'
Update a
Set AgentNumber = '5',
From dbo.CustomerList a
join @tablename b on a.customerid = b.customerid
end
Check out question de mise à jour dynamique SQL –
pour inclure ce que la base de données que vous êtes. Assez sûr que vous serez obligé de dynamique sql ici ... mais je vous suggère de demander pourquoi vous le faites de cette façon et s'il y a une meilleure façon d'atteindre ce que vous voulez ici. – Twelfth
En plus des correctifs ci-dessous, vous avez d'autres problèmes ici. Vous avez une virgule après la première ligne de la mise à jour mais vous ne mettez à jour qu'une seule colonne. Et si vous avez un classement sensible à la casse, cela échouera car TableName <> nom_table –