--接收参数查询信息
declare @au_lname varchar(100)
set @au_lname='White'
select au_fname from authors where au_lname=@au_lname
go
--接收整个条件描述的简单动态sql
declare @where varchar(100)
set @where='au_lname=''White'''
exec('select au_fname from authors where '+@where)
go
--接收整个条件描述,且把查询返回到变量参数的复杂动态sql
declare @where nvarchar(100)
set @where=N'au_lname=''White'''
declare @ret varchar(100)
declare @sql nvarchar(1000)
set @sql=N'select @ret=au_fname from authors where '+ @where
exec sp_executesql @sql,N'@ret varchar(100) output' ,@ret=@ret output
select @ret
go
declare @au_lname varchar(100)
set @au_lname='White'
select au_fname from authors where au_lname=@au_lname
go
--接收整个条件描述的简单动态sql
declare @where varchar(100)
set @where='au_lname=''White'''
exec('select au_fname from authors where '+@where)
go
--接收整个条件描述,且把查询返回到变量参数的复杂动态sql
declare @where nvarchar(100)
set @where=N'au_lname=''White'''
declare @ret varchar(100)
declare @sql nvarchar(1000)
set @sql=N'select @ret=au_fname from authors where '+ @where
exec sp_executesql @sql,N'@ret varchar(100) output' ,@ret=@ret output
select @ret
go
本文通过三个不同复杂度的SQL示例介绍了如何在T-SQL中使用动态查询来获取作者的名。首先展示了简单的静态查询,然后逐步过渡到更复杂的动态SQL实现。
4万+

被折叠的 条评论
为什么被折叠?



