ورود

View Full Version : مبتدی: مشکل این کد چی هست؟ متغیر کردن نام جدول در استورید پروسیجر



S_VB.max
دوشنبه 30 شهریور 1388, 11:55 صبح
سلام
میشه به من بگید مشکل این کد چی هست؟ من می خوام نام جدول را متغیر کنم ولی خطای زیر را میده

Must declare the variable '@xx'
ممنون میشم راهنمایی کنید



CREATE PROCEDURE [dbo].[Update_Logos]
(
@page int,
@code nvarchar(10),
@Logo image,
@xx nvarchar(15)

)
AS

BEGIN

UPDATE @xx
SET
[pic] = @Logo
WHERE [page] = @page and [cod]=@code

END
GO

mojtaba.baghban
دوشنبه 30 شهریور 1388, 13:04 عصر
باید هم error بده جلوی دستور update باید نام جدول بیاد در حالیکه @xx نام متغیر است.

محمد سلیم آبادی
دوشنبه 30 شهریور 1388, 13:07 عصر
شما در این مواقع باید از Dynamic SQL استفاده کنید.
با کمک دستور Exec() این کار امکان پذیر است (متغیر/پویا بودن نام جدول)
یک جستجو با Tag در این مورد بکنید به جوابتون می رسید.

S_VB.max
سه شنبه 31 شهریور 1388, 09:58 صبح
مشکلم حل شد دست شما درد نکنه اینم راه حلش:


CREATE PROCEDURE [dbo].[Update_Pics]
(

@NameTBL char(15),@page int,@code char(15), @Logo image


)
AS

BEGIN


exec ('UPDATE ['+ @NameTBL + ']
SET
[pic] ='+ @Logo+'
WHERE [page] ='+ @page + ' and [cod]='+ @code )

END
GO