View Full Version : ایراد در ارتباط با EXECUTE
shahab_ksh
پنج شنبه 15 شهریور 1386, 21:36 عصر
با سلام چطور خروجی این EXECUTE رو به par_out بدم یعنی خروجی
SELECT SCOPE_IDENTITY() as fld_id
و کد کلی من هست
ALTER PROCEDURE dbo.Form_fld_insert
(
@par_id Int,
@par_out Int OUTPUT
)
AS
EXECUTE ('
Declare @temp Nvarchar(100)
Select @temp=''-''
INSERT INTO tbl_form_data_'+@par_id+' (fld_temp) VALUES(@temp)
SELECT SCOPE_IDENTITY() as fld_id
RETURN
')
RETURN
حمیدرضاصادقیان
جمعه 16 شهریور 1386, 16:45 عصر
فکر کنم بتونی به این صورت بنویسی
select @par_out=scope_Identity()
shahab_ksh
جمعه 16 شهریور 1386, 16:59 عصر
نشد
به این شکل هم تغییر دارم بازم نشد :ناراحت:
ALTER PROCEDURE dbo.Form_fld_insert
(
@par_id Int,
@par_out Int OUTPUT
)
AS
DECLARE @strSQL nvarchar(4000)
SELECT @strSQL =
'Declare @temp Nvarchar(100)
Select @temp=''-''
INSERT INTO tbl_form_data_'+@par_id+' (fld_temp) VALUES (@temp)
SELECT @par_out = SCOPE_IDENTITY()
'
EXEC sp_executesql @strSQL,
N'@par_out Int',
@par_out Int OUTPUT
RETURN
supporter
جمعه 16 شهریور 1386, 19:06 عصر
یک نگاه هم به کد زیر بندازید امیدوارم منظورتون رو درست متوجه شده باشم البته شاید بشه بهترش هم کرد:
DECLARE @par_id Int,
@par_out Int,
@Cmd NVARCHAR(1000)
SET @par_id = 1
SET @Cmd =
N'Declare @temp Nvarchar(100)
Select @temp=''-''
INSERT INTO tbl_form_data_' + LTRIM(RTRIM(STR(@par_id))) + ' (Name) VALUES(@temp)
SELECT @OutIdentity = SCOPE_IDENTITY()'
EXECUTE sp_executesql @Cmd,
N'@OutIdentity int OUTPUT',
@OutIdentity = @par_out OUTPUT
SELECT @par_out
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.