ارسال اسم جدول به عنوان پارامتر به Sp
ّبا سلام من یک stored Procedure دارم که اسم جدول و یک متغیر به عنوان پارامتر به آن ارسال میکنم به صورت زیر
ALTER Proc [dbo].[Select_Path_New]
@table_name varchar(50),
@Name nvarchar(max)
as
Declare @Sql_Code Varchar(300)
set @Sql_Code = N'SELECT * FROM ' + @table_name + ' WHERE Name = ''' + @Name + ''''
exec(@Sql_Code)
sp درست هست و ایجاد میشه و وقتی اسم جدول و متغیر Name را برای آن ارسال میکنم اگه متغیر Name به صورت انگلیسی باشه خروجی درست میدهد ولی اگر متغیر Name به صورت یک رشته حروف فارسی باشد چیزی به عنوان خروجی نمی دهد...
به نظر دوستان مشکل از کجاست؟
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
اسم فارسی باید داخل [] باشد.
پس شما کلا اسمو بذارین داخل [] که چه انگلیسی, چه فارسی درست بشه
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
سلام
مشکله coding است. اگر unicode باشد نباید مشکلی داشته باشید.
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
نقل قول:
نوشته شده توسط
Elham_gh
اسم فارسی باید داخل [] باشد.
پس شما کلا اسمو بذارین داخل [] که چه انگلیسی, چه فارسی درست بشه
با سلام...
ممنونم از راه حل شما ولی متاسفانه به جوابی نرسیدم
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
سلام
این خط را با خط معادلش عوض کنید:
Set @Sql_Code = N'Select * From '+@table_name+' Where Name=N'+Char(39)+@Name+Char(39)
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
با سلام...کاربر ASKaffash ...ممنونم از پاسخ شما ....ولی متاسفانه باز هم مشکل حل نشد...
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
سلام
حرف ی که درون رشته Name وجود ندارد ؟ بنظرم دستور ارسالی را نیز قرار دهید
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
Declare @Sql_Code nvarchar(300)
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
نقل قول:
نوشته شده توسط
BlackDal
Declare @Sql_Code nvarchar(300)
با سلام ..ممنونم که توجه نشان دادید و پاسخ ارسال کردید.
ولی متاسفانه باز هم درست نشد...
و مشکل از حرف ی هم نیست..چک کردم...
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
من فراموش کردم بگم، اما امیدوارم شما @table_name را هم تبدیل به nvarchar کرده باشید.
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
نقل قول:
نوشته شده توسط
BlackDal
من فراموش کردم بگم، اما امیدوارم شما @table_name را هم تبدیل به nvarchar کرده باشید.
با سلام..@table_name را هم nvarchar کرده ام ولی باز هم جواب نگرفتم..
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
لطفاً این کد را امتحان کرده و در صورت دریافت خطا، پیغام مربوطه را اینجا بنویسید.
ALTER Proc [dbo].[Select_Path_New]
@Table_Name nvarchar(50),
@Name nvarchar(max)
AS
DECLARE @Sql_Code nvarchar(300)
SET @Sql_Code = N'SELECT * FROM [' + Table_Name + '] WHERE Name = ''' + @Name + ''''
EXEC(@Sql_Code)
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
نقل قول:
نوشته شده توسط
BlackDal
لطفاً این کد را امتحان کرده و در صورت دریافت خطا، پیغام مربوطه را اینجا بنویسید.
ALTER Proc [dbo].[Select_Path_New]
@Table_Name nvarchar(50),
@Name nvarchar(max)
AS
DECLARE @Sql_Code nvarchar(300)
SET @Sql_Code = N'SELECT * FROM [' + Table_Name + '] WHERE Name = ''' + @Name + ''''
EXEC(@Sql_Code)
با سلام..ممنونم که راهنمایی میکنید...
فکر کنم منظورتون از Table_Name که آورده اید Table_Name@ باشد...
در هر دو صورت پیغام خطا می دهد
اگر در دستور select , من Table_Name را بنویسم پیغام خطای Invalid column name 'Table_Name'.
را می دهد.
و اگر در دستور Select , من Table_Name@ را بنویسم Stored Procedure ایجاد می شود.
ولی در هنگام اجرای آن خطای Incorrect syntax near '='.
می دهد.
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
نقل قول:
با سلام..ممنونم که راهنمایی میکنید...
فکر کنم منظورتون از Table_Name که آورده اید Table_Name@ باشد...
بله منظورم همان بود.
در Tablle_Name به جای ستون Name از نام دیگری استفاده کنید. Name یک کلمه کلیدی در Sql است.
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
نقل قول:
نوشته شده توسط
BlackDal
بله منظورم همان بود.
در Tablle_Name به جای ستون Name از نام دیگری استفاده کنید. Name یک کلمه کلیدی در Sql است.
با سلام..ممنونم از راهنماییتون....
ولی متاسفانه به جواب نرسید
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
این را امتحان کنید :
alter Proc [dbo].[Select_Path_New]
@Table_Name nvarchar(50),
@Name nvarchar(200)
AS
DECLARE @Sql_Code nvarchar(300)
SET @Sql_Code = N'SELECT * FROM [' + @Table_Name + '] WHERE Name = ' + @Name
EXEC(@Sql_Code)
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
نقل قول:
نوشته شده توسط
adinochestva
این را امتحان کنید :
alter Proc [dbo].[Select_Path_New]
@Table_Name nvarchar(50),
@Name nvarchar(200)
AS
DECLARE @Sql_Code nvarchar(300)
SET @Sql_Code = N'SELECT * FROM [' + @Table_Name + '] WHERE Name = ' + @Name
EXEC(@Sql_Code)
با سلام....ممنونم از توجه شما ..بازهم به جواب نرسید......:ناراحت:
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
کد اصلاح شده (چیزی که الان استفاده می کنید) را درج کنید لطفاً.
نقل قول: ارسال اسم جدول به عنوان پارامتر به Sp
باسلام....و ممنون از توجه شما دوستان
من دو کد زیر را چک کردم و هنوز به جواب نریسده ام
ALTER Proc [dbo].[Select_Path_New]
@Table_Name nvarchar(50),
@Name nvarchar(200)
AS
DECLARE @Sql_Code nvarchar(300)
SET @Sql_Code = N'SELECT * FROM [' + @Table_Name + '] WHERE Name= ''' + @Name + ''''
EXEC(@Sql_Code)
که این کد در هنگام اجرا خطایی نمی گیرد ولی چیزی هم به عنوان خروجی بر نمی گرداند
و همچنین کد زیر
ALTER Proc [dbo].[Select_Path_New]
@Table_Name nvarchar(50),
@Name nvarchar(200)
AS
DECLARE @Sql_Code nvarchar(300)
SET @Sql_Code = N'SELECT * FROM [' + @Table_Name + '] WHERE Name= ' + @Name
EXEC(@Sql_Code)
که این کد در هنگام اجرا یک خطا میگیرد
البته من در هنگام اجرا ورودی @Name = N'تست'
قرار دادم که این خطا را بر گرداند
Invalid column name 'تست'.