How To Use Dynamic Sql in Sql Server ?

本文介绍了一种在SQL Server中使用动态SQL的方法,并通过存储过程实现序列号生成的功能。展示了如何设置动态查询并安全地执行它,同时处理输出参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值