-
批处理 动态sql
所属栏目:[MsSql教程] 日期:2020-12-12 热度:113
1. DECLARE TYPE ref_cursor_type IS ref CURSOR; v_mycursor ref_cursor_type; TYPE id_list IS TABLE OF integer; TYPE name_list IS TABLE OF varchar2(30); v_tabid id_list:=id_list(); v_tabname name_list:=name_list(); sql_str varchar2(200); BEG[详细]
-
SQL Server 2008的逻辑查询处理步骤
所属栏目:[MsSql教程] 日期:2020-12-12 热度:80
最近我则刚刚收到了微软最有价值专家项目组寄来的该书的SQL Server 2008英文版本-《Inside Microsoft SQL Server 2008:T-SQL Querying》(http://www.microsoft.com/learning/en/us/book.aspx?ID=12804Oslash; (1-J1):执行left_table和right_table两个表[详细]
-
在sp_executesql中使用like字句的方法
所属栏目:[MsSql教程] 日期:2020-12-12 热度:78
declare @LikeSql nvarchar(32);--定义一个like变量,如果是存储过程,此处可以存储过程的参数 set @LikeSql = ‘someword%';--把LikeSql变量赋值,可以赋值成'%xxxxxxxxxxxx%' declare @SelectSql nvarchar(128)--定义Sql语句,开始拼Sql set @SelectSql =[详细]
-
SQL 合并多行记录的方法总汇
所属栏目:[MsSql教程] 日期:2020-12-12 热度:121
SQL中合并多行记录的方法总汇: --1. 创建表,添加测试数据 CREATE TABLE tb(id int,[value] varchar(10)) INSERT tb SELECT 1,'aa' UNION ALL SELECT 1,'bb' UNION ALL SELECT 2,'aaa' UNION ALL SELECT 2,'bbb' UNION ALL SELECT 2,'ccc' --SELECT * FROM t[详细]
-
SQL中的left join right join
所属栏目:[MsSql教程] 日期:2020-12-12 热度:121
以下是它们的共同点: 1. 关于左右表的概念。左表指的是在SQL语句中排在left join左边的表,右表指的是排在left join右边的表。 2. 在拼成的大表中,左表排在左边,右表排在右边。 3. on条件语句最好用=号对两表相应的主外键进行连接。当然,也可以用其他操[详细]
-
Sql Server 数据库索引整理语句,自动整理数据库索引
所属栏目:[MsSql教程] 日期:2020-12-12 热度:134
在一个大型数据库中,数据的更改是非常频繁的。 而建立在这些数据上的索引也是需要经常去维护的。 否则这这些数据索引就起不到起应起的作用。甚至会成为数据库本身的负担。 我们就要定期的对数据库的索引进行维护 我在MSDN上发现了这个脚本不过其中有些小问[详细]
-
查询数据排名情况SQL
所属栏目:[MsSql教程] 日期:2020-12-12 热度:147
1/准备测试数据 --------------------------------------------------------------------------------- create table t1( c1 integer, c2 integer, c3 integer ); insert into t1 values(1,2,3) insert into t1 values(1,8,4) insert into t1 values(1,4,4)[详细]
-
sqlserver 比较两个表的列
所属栏目:[MsSql教程] 日期:2020-12-12 热度:57
一、问题 给了两个各有四五十个列的表,找出他们相同的列和不同的列 二、查询两个表的列,存在临时表 --#a,#b都是临时表,当前连接断开后自动删除 --RANK() OVER (ORDER BY syscolumns.name DESC) AS 是SQL2005支持的,在每行记录前加上自增序号 --IDENTITY([详细]
-
mssql 两表合并sql语句
所属栏目:[MsSql教程] 日期:2020-12-12 热度:120
一、问题 学生表: 课程表: id 姓名 课程号(外键) 课程号,课程名 '1','xix',1 1,' 语文' '2','cic',2 2,'数学' '3','ddi',4 3,'英语' 将学生表、课程表合成一个新表 destTb: id 姓名 课程号 课程名 1 xix 1 语文 2 cic 2数学 3 ddi NULLNULL NULLNULL3英[详细]
-
SQL SERVER 文件和文件组
所属栏目:[MsSql教程] 日期:2020-12-12 热度:70
1、文件和文件组的含义与关系 。文件组允许对文件进行分组,以便于管理和数据的分配/放置。例如,可以分别在三个硬盘驱动器上创建三个文件(Data1.ndf、Data2.ndf 和 Data3.ndf),并将这三个文件指派到文件组 fgroup1 中。然后,可以明确地在文件组 fgroup[详细]
-
SQL server 随机数函数
所属栏目:[MsSql教程] 日期:2020-12-12 热度:78
不过还是希望老鸟们多多指教了,现在切入正题: 随机函数:rand() 在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558, 像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数。那就看下面的两种随[详细]
-
SQLServer Top语句参数化方法
所属栏目:[MsSql教程] 日期:2020-12-12 热度:105
declare @TopCount int set @TopCount = 100 select top (@TopCount) * from AdventureWorks.HumanResources.Employee 如果有Like等字句,一定要拼Sql的话,也应该使用sp_executesql来执行,示例如下: declare @TopCount int --定义top 数量 set @TopCount[详细]
-
SQLServer EVENTDATA()函数来获取DDL 触发器信息
所属栏目:[MsSql教程] 日期:2020-12-12 热度:53
div class="codetitle" a style="CURSOR: pointer" data="70704" class="copybut" id="copybut70704" onclick="doCopy('code70704')" 代码如下:div class="codebody" id="code70704" -- Create a log table CREATE TABLE TriggerLog (LogInfo xml) -- Create[详细]
-
sql server 常用的几个数据类型
所属栏目:[MsSql教程] 日期:2020-12-12 热度:104
Sql server中常用的几个数据类型: binary 固定长度的二进制数据,其最大长度为 8,000 个字节。 varbinary 可变长度的二进制数据,其最大长度为 8,000 个字节。 image 可变长度的二进制数据,其最大长度为 2G+ - 1 (2,147,483,647) 个字节 text 服务器代码页[详细]
-
SQL Server 排序函数 ROW_NUMBER和RANK 用法总结
所属栏目:[MsSql教程] 日期:2020-12-12 热度:146
1.ROW_NUMBER()基本用法: SELECT SalesOrderID, CustomerID, ROW_NUMBER() OVER (ORDER BY SalesOrderID) AS RowNumber FROM Sales.SalesOrderHeader 结果集: SalesOrderID CustomerID RowNumber --------------- ------------- --------------- 43659 676[详细]
-
数据库Left join , Right Join, Inner Join 的相关内容,非常实
所属栏目:[MsSql教程] 日期:2020-12-12 热度:175
一.先看一些最简单的例子 例子 Table A aid adate 1 a1 2 a2 3 a3 TableB bid bdate 1 b1 2 b2 4 b4 两个表a,b相连接,要取出id相同的字段 select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据. 此时的取出的是: 1 a1 b1 2 a2 b2 那么left jo[详细]
-
MySql 安装时的1045错误
所属栏目:[MsSql教程] 日期:2020-12-12 热度:121
解决办法1. 卸载重装,不设root密码,因为MySql默认密码为空。 解决办法2. 保持现在的密码,打开“MySQL Command Line Client”输入你的密码(安装时设的那个,如果密码不对可以试下空密码登录,有可能安装时密码设置无效)。登录成功后输入命令: SET PASSWO[详细]
-
SQL Server 中查看SQL句子执行所用的时间
所属栏目:[MsSql教程] 日期:2020-12-12 热度:191
div class="codetitle" a style="CURSOR: pointer" data="48717" class="copybut" id="copybut48717" onclick="doCopy('code48717')" 代码如下:div class="codebody" id="code48717" set statistics profile on set statistics io on set statistics time on[详细]
-
模糊查询的通用存储过程
所属栏目:[MsSql教程] 日期:2020-12-12 热度:163
div class="codetitle" a style="CURSOR: pointer" data="3028" class="copybut" id="copybut3028" onclick="doCopy('code3028')" 代码如下:div class="codebody" id="code3028" IF Exists(Select 1 From sysobjects Where Name='sp_search' And xType='P')[详细]
-
sql 查询慢的原因分析
所属栏目:[MsSql教程] 日期:2020-12-12 热度:81
查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询[详细]
-
SQL Server 数据库优化
所属栏目:[MsSql教程] 日期:2020-12-12 热度:151
在开发工具、数据库设计、应用程序的结构、查询设计、接口选择等方面有多种选择,这取决于特定的应用需求以及开发队伍的技能。本文以SQL Server为例,从后台数据库的角度讨论应用程序性能优化技巧,并且给出了一些有益的建议。 1 数据库设计 要在良好的SQL S[详细]
-
数据库 日期加减处理
所属栏目:[MsSql教程] 日期:2020-12-12 热度:65
在实际的处理中,还有一种比较另类的日期加减处理,就是在指定的日期中,加上(或者减去)多个日期部分,比如将2005年3月11日,加上1年3个月11天2小时。对于这种日期的加减处理,DATEADD函数的力量就显得有点不够。要实现多个日期部分的加减处理,最主要的就[详细]
-
sql 触发器使用例子
所属栏目:[MsSql教程] 日期:2020-12-12 热度:181
inserted,deleted是在触发器中使用的两个临时表,当执行insert操作时,在inserted中存储着当前插入的记录,在执行delete操作时,在deleted中存储着当前删除的记录,当执行update时,在inserted中存储着修改后的记录,在deleted中存储着修改前的记录。 div cla[详细]
-
sql 刷新视图
所属栏目:[MsSql教程] 日期:2020-12-12 热度:131
比如我们创建了一个表T1和一个T1的视图V1,然后更改T1,再看V1的结果: 首先创建表T1: div class="codetitle" a style="CURSOR: pointer" data="22245" class="copybut" id="copybut22245" onclick="doCopy('code22245')" 代码如下:div class="codebody" id="c[详细]
-
提升SQL Server速度 整理索引碎片
所属栏目:[MsSql教程] 日期:2020-12-12 热度:119
凭经验,这是索引碎片问题。检查索引碎片DBCC SHOWCONTIG(表),得到如下结果: DBCC SHOWCONTIG 正在扫描 'A' 表... 表: 'A'(884198200);索引 ID: 1,数据库 ID: 13 已执行 TABLE 级别的扫描。 - 扫描页数.....................................: 3127 -[详细]