leila.net
یک شنبه 19 بهمن 1393, 13:12 عصر
با سلام
دوستان من یه جدول دارم که بخاطر حجم زیاد داده ها ، تصمیم گرفتم اطلاعات مربوط به هر استان رو تو یه جدول جداگانه ذخیره کنم . خب به این ترتیب اسامی فیلدهای این جدول ها یکسان هست ولی الان برای bulk update هر کدوم از این جدول ها به مشکل برخوردم. stored procdure که برای اینکار نوشتم به شکل زیر هست :
ALTER proc [dbo].[sp_NumberUpdateWithTable]
@tblNewNumber dbo.NumberType READONLY,
@tableName varchar(200)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @cmd AS NVARCHAR(max)
SET @cmd = N'update '+@tablename+' set '+@tablename+'.status =us.status from '+@tablename+' inner join '+@tblNewNumber+' as us on SUBSTRING( '+@tablename+'.number ,len('+@tablename+'.number)-9, 10 )=us.number'
EXEC sp_executesql @cmd
END
خب همون طور که می بینین نام جدول رو هم به storedproc ارسال می کنم به همراه پارامتر @tblNewNumber که از نوع table هست . ولی خب با خطای زیر مواجه می شم :
Must declare the scalar variable "@tblNewNumber".
چطور می تونم این مسئله رو حل کنم ؟
ممنون میشم راهنمایی کنید.
دوستان من یه جدول دارم که بخاطر حجم زیاد داده ها ، تصمیم گرفتم اطلاعات مربوط به هر استان رو تو یه جدول جداگانه ذخیره کنم . خب به این ترتیب اسامی فیلدهای این جدول ها یکسان هست ولی الان برای bulk update هر کدوم از این جدول ها به مشکل برخوردم. stored procdure که برای اینکار نوشتم به شکل زیر هست :
ALTER proc [dbo].[sp_NumberUpdateWithTable]
@tblNewNumber dbo.NumberType READONLY,
@tableName varchar(200)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @cmd AS NVARCHAR(max)
SET @cmd = N'update '+@tablename+' set '+@tablename+'.status =us.status from '+@tablename+' inner join '+@tblNewNumber+' as us on SUBSTRING( '+@tablename+'.number ,len('+@tablename+'.number)-9, 10 )=us.number'
EXEC sp_executesql @cmd
END
خب همون طور که می بینین نام جدول رو هم به storedproc ارسال می کنم به همراه پارامتر @tblNewNumber که از نوع table هست . ولی خب با خطای زیر مواجه می شم :
Must declare the scalar variable "@tblNewNumber".
چطور می تونم این مسئله رو حل کنم ؟
ممنون میشم راهنمایی کنید.