How To Use Dynamic Sql in Sql Server ?

来源:互联网 发布:linux boot目录不足 编辑:程序博客网 时间:2024/05/16 11:15

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

                       

原创粉丝点击