SQLServer Top语句参数化方法网赌平台哪个信誉好:

declare @TopCount int set @TopCount = 100 select top (@TopCount) * from
AdventureWorks.HumanResources.Employee
如果有Like等字句,一定要拼Sql的话,也应该使用sp_executesql来执行,示例如下:
declare @TopCount int –定义top 数量 set @TopCount = 100 declare @Title
nvarchar(100) –定义like内容 set @Title = ‘%n%’ declare @SelectSql
nvarchar(max) set @SelectSql = ‘ select top (@TopCountPar) * from
AdventureWorks.HumanResources.Employee where Title like @TitlePar’
–使用参数化的top和like –使用sp_executesql 来执行,可以提高效率 exec
sp_executesql @SelectSql, N’@TopCountPar as int,@TitlePar as
nvarchar(100)’, @TopCountPar = @TopCount,@TitlePar = @Title

  1. –动态语句语法
  2. /******************************************************************************************************************************************************
  3. 动态语句语法:exec/sp_executesql语法
    1. 整理人:中国风(Roy)
    1. 日期:2008.06.06
  4. ******************************************************************************************************************************************************/
  5. 网赌平台哪个信誉好,动态语句语法:
    1. –方法1查询表改为动态
  6. select * from sysobjects
  7. exec(‘select ID,Name from sysobjects’)
  8. exec sp_executesql N’select ID,Name from sysobjects’–多了一个N为unicode
    1. –方法2:字段名,表名,数据库名之类作为变量时,用动态SQL 
  9. declare @FName varchar(20)
  10. set @FName=’ID’
  11. exec(‘select ‘+@FName+’ from sysobjects where ‘+@FName+’=5’ )
      1. declare @s varchar(1000)
  12. set @s=N’select ‘+@FName+’ from sysobjects where ‘+@FName+’=5’
  13. exec sp_executesql @s–会报错
      1. declare @s nvarchar(1000)–改为nvarchar
  14. set @s=N’select ‘+@FName+’ from sysobjects where ‘+@FName+’=5’
  15. exec sp_executesql @s–成功
      1. –方法3:输入参数
    1. declare @i int,@s nvarchar(1000)
  16. set @i=5
  17. exec(‘select ID,Name from sysobjects where ID=’+@i)
    1. set @s=’select ID,Name from sysobjects where ID=@i’
  18. exec sp_executesql @s,N’@i int’,@i–此处输入参数要加上N
    1. –方法4:输出参数
    1. declare @i int,@s nvarchar(1000)
  19. set @s=’select @i=count(1) from sysobjects’
    1. –用exec
  20. exec(‘declare @i int ‘+@s+’ select @i’)–把整个语句用字符串加起来执行
    1. –用sp_executesql
  21. exec sp_executesql @s,N’@i int output’,@i output–此处输出参数要加上N
  22. select @i
      1. –方法5:输入输出
    1. –用sp_executesql
  23. declare @i int,@con int,@s nvarchar(1000)
  24. set @i=5
  25. select @s=’select @con=count(1) from sysobjects where ID>@i’
  26. exec sp_executesql @s,N’@con int output,@i int’,@con output ,@i 
  27. select @con
    1. –用exec
  28. declare @i int,@s nvarchar(1000)
  29. set @i=5
  30. select @s=’declare @con int select @con=count(1) from sysobjects where ID>’+rtrim(@i)+’ select @con’
  31. exec(@s)
You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图