- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 操作完全相同多行数据中某些行
架设有如下数据:DECLARE @tb TABLE (col1 INT,col2 VARCHAR(100))INSERT INTO @tb VALUES (10,'a'), (11,'b'), (10,'a'), (10,'a'), (10,'a'), (10,'a'), (10,'a'), (11,'b')SELECT * FROM @tb col1 col2 10 a 1
2016-03-29 10:08:22 793
原创 读取结果集的结构信息
在某些场合,我们需要查看SQL 命令的返回结果的结构,而不关心数据。 一般情况自己写SQL可以在条件中加一条固定为False的条件,如1=2 但如果是调用已经实现的固定程序,如存储过程,如果自己重新写一段SQL,二次处理也可以实现,但其实SQL Server已经提供了现成的方法。 先创建测试数据:IF OBJECT_ID('sp_GetTestData') IS NOT NULL DROP P
2016-03-27 20:45:42 933
原创 使用IN 来同时查询多个列
比如搜索多个列中是否包含某一字符,或数值。一般的思路是用or连接多个条件,比如:;WITH cte(ID,value1,value2,value3,value4) AS ( SELECT 1,100,200,300,400 UNION ALL SELECT 2,90,100,200,300 UNION ALL SELECT 3,80,90,100,200 UNION AL
2016-03-27 15:25:21 3807
原创 动态排序和动态查询条件
试想如下情景:有个数据查询页面,有很多条件供用户查询数据,但用户每次不一定所有条件都用到。返回的结果显示在DataGrid中,用户可以点击列标题来决定用哪个列来排序。这里遇到的问题就是每次查询时查询插件和排序的列是不确定的,但是最大集是确定的。一般做法是动态构造SQL语句,然后使用EXECUTE执行。这里不做说明,如果不采用动态构造查询语句可以如下处理,以SQL做实际示范:
2016-03-27 15:08:18 1194
原创 快速存档表数据
有时候数据库中数据太多,需要定期做存档,比如某些业务需求中需要按照月将表产生的数据存档为新的表中,清空当前表。一般的简单的做法可以使用SELECT INTO语法,如果表数据很多,那么要花点时间。可以使用SWITCH PARTITION快速完成: ALTER TABLE Orders SWITCH to Orders201603要求:目标表必须和原表结构一致,且为空目标表
2016-03-27 13:39:05 403
翻译 SQL Server存储过程定义的几个最大值
存储过程最大参数数量:2100存储过程中最大的本地变量数量没有固定限制,由可用内存决定存储过程最大可用内存为128MMaximum Capacity Specifications for SQL Server监控存储过程的内容用量,可以用下面语句获取简单信息:SELECT usecounts, size_in_bytes, cacheobjtype, te
2016-03-27 13:02:34 1570
原创 如果在SELECT TOP 中使用变量
如果TOP后取得行数是动态的,这时需要用变量实现动态数值,但如果直接写成:DECLARE @LineCount INT =10SELECT TOP @LineCount * FROM sys.tables AS t会返回错误:Msg 102, Level 15, State 1, Line 2Incorrect syntax near '@LineCount'.
2016-03-27 12:40:07 8424 1
XPCC-XP Common Control
2009-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人