PDA

View Full Version : ارسال نام جدول به صورت پارامتر در پروسیجر



hercool
جمعه 09 آبان 1393, 22:25 عصر
سلام دوستان
من نیاز دارم که نام جدول را به صورت پارامتر به پروسیجرم پاس بدم
حالا وقتی می خوام از این کد استفاده کنم ارور میده ممنون میشم راهنماییم کنید کد های سایت های دیگه رو هم امتحان کردم اما نشد
کد خودم
ALTER PROCEDURE [dbo].[testparam]
-- Add the parameters for the stored procedure here
@codenezamDoctore int,
@TKHasos nvarchar(50),
@NameDoctor nvarchar(50),
@state bit,
@nametable char(12)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
declare @sql nvarchar(500)
select @sql= 'insert into ' + @nametable +'( CodeNezamDoctore,Tkhasos,NameDoctor,state) values (' +
@codenezamDoctore +','+
@TKHasos +','+
@NameDoctor +','+
@state +')'
--exec (@sql)


exec sp_executesql @sql
END

خطایی هم که مید این هست

Msg 245, Level 16, State 1, Procedure testparam, Line 21
Conversion failed when converting the varchar value 'insert into doctor ( CodeNezamDoctore,Tkhasos,NameDoctor,state) values (' to data type int.

dabirsiaghi
شنبه 10 آبان 1393, 01:33 صبح
به نظرم مشکل از نام نیست
بلکه نوع فیلدها در جدول با پارامترهای ورودی یکی نیست

hercool
شنبه 10 آبان 1393, 06:39 صبح
من به شکل متعارف هم این پروسیجر رو با مقدار (نام جدول ثابت) نوشتم و تونستم که داده را ذخیره کنم اما به این شکل این ارور ها را برای داده های ورودی مشترک میدهد:افسرده: