How To Use Dynamic Sql in Sql Server ?
How To Use Dynamic Sql in Sql Server ?
动态SQL 在sql server Procedure中的应用
Create PROCEDURE [dbo].[Proc_Get_Serial_No]
(
@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 [dbo].[Proc_Get_Serial_No]
(
@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