除了基本的数据库,数据表,数据记录操作之外,SQL-Server还为我们提供了比较丰富的其他对象元素。函数,过程,触发器,序列,映射服务器,

以及对各种元素的系统表信息读取与判断。

--先加一个利用递归查询树形节点的例子,待整理

CREATE TABLE smMenuTest
(
 Menuid INT,
 MenuCaption VARCHAR(255),
 MenuKind INT,
 SuperId INT  
)
SELECT * FROM smMenuTest ORDER BY MenuKind,SuperID,Menuid
INSERT smMenuTest VALUES (1,'销售管理',1,0)
INSERT smMenuTest VALUES (2,'计划管理',1,0)
INSERT smMenuTest VALUES (3,'报价管理',2,1)
INSERT smMenuTest VALUES (4,'订单管理',2,1)
INSERT smMenuTest VALUES (5,'主计划',2,2)
INSERT smMenuTest VALUES (6,'制定报价单',3,3)
INSERT smMenuTest VALUES (7,'报价单查询',3,3)
INSERT smMenuTest VALUES (8,'订单录入',3,4)
INSERT smMenuTest VALUES (9,'订单审核',3,4)
INSERT smMenuTest VALUES (10,'MRP计划',3,5)
GO
;
--DELETE smMenuTest
WITH Menu as
    (SELECT A.Menuid,A.MenuCaption,A.SuperId,iLevel=0  FROM smMenuTest A(NOLOCK)
        WHERE A.MenuCaption='订单审核'
  UNION ALL
     SELECT A.Menuid,A.MenuCaption,A.SuperId,iLevel=B.iLevel+1 FROM smMenuTest A(NOLOCK) JOIN Menu B on B.SuperId=A.Menuid )
SELECT A.MenuCaption+'-' FROM Menu A FOR XML PATH ('')

--用让变量参与动态语句运算, 并取值(待整理)

    1. CREATE TABLE #tmp(t INT NOT NULL,it DECIMAL(18,4),pt DECIMAL(18,4));
    2. INSERT INTO #tmp(t,it,pt) VALUES(1,10.00,15.00);
    3. INSERT INTO #tmp(t,it,pt) VALUES(2,20.00,30.00);
    4. DECLARE @sql NVARCHAR(2000) = N'SELECT @it=it,@pt=pt FROM #tmp WHERE t=@tN;';
    5. DECLARE @Param NVARCHAR(500) = N'@tN INT,@it DECIMAL(18,4) OUTPUT,@pt DECIMAL(18,4) OUTPUT';
    6. DECLARE @tN INT,@it DECIMAL(18,4),@pt DECIMAL(18,4);
    7. SET @tN = 1;
    8. --@tN=@tN,第一个@tN是@Param里的声明,而第二个@tN则是外部的声明,其他类似
    9. EXEC sp_executesql @sql,@Param,@tN=@tN,@it=@it OUTPUT,@pt=@pt OUTPUT;
    10. SELECT @it,@pt;
    11. DROP TABLE #tmp;

SQL-Server使用点滴(三)的更多相关文章

  1. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...

  2. SQL Server中的三种Join方式

      1.测试数据准备 参考:Sql Server中的表访问方式Table Scan, Index Scan, Index Seek 这篇博客中的实验数据准备.这两篇博客使用了相同的实验数据. 2.SQ ...

  3. (转) 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    原文地址: http://www.cnblogs.com/lyhabc/p/4682986.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第三篇,这一篇才真正开始搭建Alwa ...

  4. 浅谈SQL Server中的三种物理连接操作

    简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge J ...

  5. SQL Server中的三种物理连接操作

    来源:https://msdn.microsoft.com/zh-cn/library/dn144699.aspx 简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Out ...

  6. 浅谈SQL Server中的三种物理连接操作(HASH JOIN MERGE JOIN NESTED LOOP)

    简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge J ...

  7. SQL server学习(三)T-SQL编程、逻辑控制语句和安全模式

    T-SQL编程 T-SQL编程与C语言类似,只是语法稍有不同而已,总体思想还是没有变化的.多的就不说了,还是从变量开始. 变量也分为全局变量和局部变量,表示方式稍有不同. 局部变量: 局部变量必须以标 ...

  8. SQL Server基础知识三十三问 (15-21)

    15. 存储过程可以调用自己么, 或者说可能有递归的存储过程么? SP nesting最多可以到多少层? 答: 可以的. 因为Transact-SQL 支持递归, 你可以编写可以调用自己的存储过程. ...

  9. 浅谈SQL Server中的三种物理连接操作(Nested Loop Join、Merge Join、Hash Join)

    简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge J ...

  10. sql server 索引总结三

    一.非聚集索引维护 非聚集索引的行定位器值保持相同的聚集索引值,即使该聚集索引列物理上重新定位后,也是如此. 为了优化这个维护开销,SQL Server添加一个指向旧数据页的指针,以在页面分割之后指向 ...

随机推荐

  1. 错误 You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work

    Win  10    下python3.6 使用Beautiful Soup  4错误 You are trying to run the Python 2 version of Beautiful ...

  2. SqlServer try catch 捕获不到的一些错误及解决方法(转载)

    测试注意 :①假如系统能捕获异常 ,并且我们自己开启了事务.系统会自动 回滚事务的,但是 我们还是要在catch里面加上 rollback tran的习惯,这样也不会提示重复rollback的错误,这 ...

  3. 比较常用到的一些linux命令行

    find ./ -type f -name "*.c" | xargs grep -l "tm_common_ctrl_init_chip_init"     ...

  4. mongodb学习(一)

    操作系统环境:ubuntu. 安装mongodb:apt-get install mongodb 安装后运行:mongod提示:[initandlisten] exception in initAnd ...

  5. Design Tic-Tac Toe

    Design a Tic-tac-toe game that is played between two players on a n x n grid. You may assume the fol ...

  6. 解决:IntelliJ IDEA 编译错误,提示 Compilation failed: internal java compiler error

    原因可能是项目指定的JDK与当前环境JDK不符合,解决办法:File->Setting->Compiler->Java Compiler, 在相应的module中选择合适的JDK版本 ...

  7. input中空格后的数据不显示

    bug,input中空格后的数据不显示     昨天在修bug,有一个bug是用户修改的个人信息的地址栏,输入有空格的话,空格后面的内容存不上,而且没有报错,奇怪了,只好跟踪下. 页面上的输入框就是个 ...

  8. Select Tree Node

    这里用到了Oracle的一个树形结构查询函数select *  from record START WITH A.TREE_NODE IN ('COST_CTR_10053')CONNECT BY P ...

  9. Javascript-9-1-OOP-5-链式调用

    <html lang="en"> <head> </head> <body> <div class="" ...

  10. 浅谈JSON.stringify 函数与toJosn函数和Json.parse函数

    JSON.stringify 函数 (JavaScript) 语法:JSON.stringify(value [, replacer] [, space]) 将 JavaScript 值转换为 Jav ...