日度归档:2019年8月22日

mssql sqlserver sql脚本分页时,获取指定行数的同时,获取符合条件的总数的方法分享


摘要:
下文讲述数据分页时,同时获取符合条件的总数的方法分享,如下所示:
实验环境:sqlserver 2008 R2


实现思路:
使用over开窗函数,并结合row_number对数据进行排序,取出符合条件的行数并计算出符合条件的总行数

例:

  create table [maomao365.com]
    (keyId int identity, info nvarchar(20))
  go
 ---生成基础数据
  insert into   [maomao365.com](info)values
(N'sqlBlog'),(N'sql爱好者'),(N'A'),(N'B'),
(N'c'),(N'd'),(N'e'),(N'f'),(N'g'),(N'h'),
(N'i'),(N'j'),(N'h'),(N'o'),(N'p'),(N'q'),
(N'r'),(N's'),(N't'),(N'u'),(N'v'),(N'w'),
(N'x'),(N'y'),(N'z'),(N'AA'),(N'BB'),(N'CC')
go 
---每页3条数据,获取符合条件的数据中的第三页数据,并返回符合条件的数据行总数
SELECT
    keyId,info,rowCount
FROM
    (SELECT
        ROW_NUMBER() OVER(ORDER BY keyId asc) rowNumber,    
        COUNT(1) OVER() AS [rowCount],
        keyId,info
    FROM   [maomao365.com]  where 1=1 /*检索条件*/
    ) t
WHERE   ---
    t.rowNumber BETWEEN 7 AND 9   --限定返回第三页的数据
go
truncate table [maomao365.com]
drop       table [maomao365.com]

mssql sqlserver 运行sql脚本出现错误信息”the name is not a valid identifier error in function”的处理方法分享


摘要:
下文讲述一次动态执行sql脚本,出现以上错误信息的处理方法,如下所示:
实验环境:sql server 2008 R2

今天存储过程动态拼接跨服务器查询数据,出现错误信息:
the name is not a valid identifier error in function

百思不得其解,最后将sql脚本打印出来,放入查询分析器中,才发现数据库名称是一个sql关键字,所以出现以上错误信息,最后我们采用中括号将关键字括起,问题得到完美解决。

     
      declare @sqlInfo nvarchar(2000)
    declare @databaseName  nvarchar(100)
      set @databaseName ='select'   
    SET @sqlInfo = ' select info from [' + @databaseName+ '].dbo.[maomao365.com]  where keyId=1 ' 
     
     print (@sqlInfo)
     exec  (@sqlInfo)

mssql sqlserver 如何快速的使用键盘对sql脚本进行注释呢?


摘要:
下文讲述sqlserver中ssms编辑器中,如何快速的对sql脚本添加注释,如下文所述


sql脚本注释快捷键:

选中脚本,按住 Ctrl+K、Ctrl+C (按住Ctrl,然后依次按K、C),及可对选中的脚本前加入注释符

sql脚本取消注释快捷键:

选中脚本,按住 Ctrl+K、Ctrl+U (按住Ctrl,然后依次按K、U),及可对选中的脚本取消注释符