丹调生活 发表于 2016-10-31 08:13:17

How To Use Dynamic Sql in Sql Server ?

How To Use Dynamic Sql in Sql Server ?

动态SQL 在sql server Procedure中的应用


Create PROCEDURE .
(
@Table_Name varchar(20),
@No_File varchar(20)
)
AS
Declare @Serial_No int
Begin
Declare @Sql nvarchar(max)
Set @Sql ='select @Serial_No= isnull(Max('+@No_File+'),0)+1 From '+@Table_Name+''

Execute sp_executesql @Sql,
N'@Serial_No int output',
@Serial_No output

print @Serial_No

End


---Result---

Serial_No
-----------
1

注意:对于Intput 的参数需要用 '+@parameter+'
对于output 的参数则需要在 执行动态sql 的时间以定义参数的形式说明。
如上面的: N'@Serial_No int output',然后才是参数输出,如 @Serial_No output

--If Your want to output more the one value, your can reference the sql section as below。
Note: The Output Parameter Define.

Create PROCEDURE .
(
@Table_Name varchar(20),
@No_File varchar(20)
)
AS
Declare @Serial_No int
Declare @x varchar(10)
Begin
Declare @Sql nvarchar(max)
Set @Sql ='select @x=''y'', @Serial_No= isnull(Max('+@No_File+'),0)+1 From '+@Table_Name+''
Execute sp_executesql @Sql,
N'@Serial_No int output,@x varchar(10) output',
@Serial_No output,
@x output

Select @Serial_No as Serial_No,@x as 'xx'
End



---Result---

Serial_No xx
----------- ----------
1 y
页: [1]
查看完整版本: How To Use Dynamic Sql in Sql Server ?