1. 有时候查看SQL的时候表名或者字段名需要加[],这是因为有时候你的表名或者字段名正好与sqlserver的保留字段重了

比如:有一个user表,直接select会报错

select * from user;

正确语法如下:

select * from [user];

2. SQL的子查询需要加 as  别名,否则编译报错;而oracle和mysql的子查询可以不加 as 别名

select * from (select * from [user])as a;

3.SQLServer的字符串也是用单引号包裹,双引号会报错

4.SQLServer的字符串拼接用concat()函数,如下

select CONCAT('1','2');
select CONCAT('1','2','3','4');

5.SQLServer触发器

参考:https://www.cnblogs.com/wangprince2017/p/7827091.html

例如:表结构

1. 创建触发器:  (修改指定列name1的时候修改name2列的值为name1列的新值)

-- =============================================

-- Author:        <Author,,Name>

-- Create date: <Create Date,,>

-- Description:    <Description,,>

-- =============================================

CREATE TRIGGER [dbo].[trigger1]

   ON  [dbo].[test]

   AFTER UPDATE

AS 

print'修改name1触发触发器执行1';

IF UPDATE([name1])

BEGIN

    -- SET NOCOUNT ON added to prevent extra result sets from

    -- interfering with SELECT statements.

    SET NOCOUNT ON;

 begin 

     DECLARE @data_id integer

     set @data_id=(select [ID] from inserted)

     DECLARE @name1 nvarchar(50)

     set @name1=(select name1 from inserted)

     print'修改name1触发触发器执行2';

     update test set name2 = @name1 where id = @data_id;

     print'修改name1触发触发器执行3';

  end      

    -- Insert statements for trigger here

END

print'修改name1触发触发器执行4';

return;

测试SQL:

update test set name2 = '';

结果:

修改name1触发触发器执行1
修改name1触发触发器执行4

(1 行受影响)

注意:

(1)IF语句如果不加{}也是对后面第一条语句生效(Begin-end视为一条语句);
(2)inserted是一个临时表,存的是更新后的新值,deleted也是一个临时表,存的是更新前的值;

(3)print @var可以打印变量信息;if update(column)表示修改指定列。

2.查看数据库所有的触发器以及与表的对应关系的SQL如下:

select  triggers.name  as  [触发器],tables.name  as  [表名],triggers.is_disabled  as  [是否禁用],
triggers.is_instead_of_trigger AS [触发器类型],
case when triggers.is_instead_of_trigger = 1 then 'INSTEAD OF'
when triggers.is_instead_of_trigger = 0 then 'AFTER'
else null
end as [触发器类型描述]
from sys.triggers triggers
inner join sys.tables tables on triggers.parent_id = tables.object_id
where triggers.type ='TR'
order by triggers.create_date

3.根据触发器名称单独查看某个触发器的创建语句

exec  sp_helptext  'triggername'

6. SQLServer查看监听的端口

exec sys.sp_readerrorlog 0, 1, 'listening'

SQLServer语法常用总结的更多相关文章

  1. sqlserver服务器常用的性能计数器

    sqlserver服务器常用的性能计数器,在此标记. 性能对象 计数器 说明 Processor %Processor Time %Privileged Time 建议值:持续低于80 建议值:持续低 ...

  2. sqlServer数据库常用连接字符串

    sqlServer   数据库常用连接字符串 用户名和密码验证的方式去连接到数据库服务器 <add name="conStr" connectionString=" ...

  3. sqlserver里常用的语法

    bb 为nvarchar(50)CAST(bb AS int) select MAX(CAST(bb AS int)) from AAA

  4. SqlServer触发器常用语法AFTER、INSTEAD OF及其详解

    先创建一个简单的触发器 CREATE TRIGGER trigger_name ON table_name [WITH ENCRYPTION] FOR | AFTER | INSTEAD OF [DE ...

  5. Sqlite基础及其与SQLServer语法差异

    1 TOP 这是一个大家经常问到的问题,例如在SQLSERVER中可以使用如下语句来取得记录集中的前十条记录: SELECT TOP 10 * FROM [index] ORDER BY indexi ...

  6. SQLServer 之 常用函数及查看

    一.查看 (1)应用程序名称              SELECT APP_NAME() (2)获取登录者名字           SELECT SUSER_NAME() (3)获取字段定义的长度  ...

  7. 一个很简单的SqlServer生成常用C#语句工具的诞生

    前言: 这个文章只要是记录一下,这个工具的诞生过程.作用.其中的技术实在是太简单可以说没有什么技术~主要是锻炼一下写文章的能力! 正文: 在开发项目的时,常常会要维护或变更一些老项目,涉及到简单的几张 ...

  8. .bat学习-基础语法(常用)

    一般来说,脚本或者语言都有相同地方 定义变量,输入,输出,判断条件等等.知道的相同之处,我们就可以借助强大的搜索引擎进行查找我们想要知道的东西. bat为批处理脚本BATCH.现在只知道是使用于win ...

  9. [PowerShell] 快速入门, 基本语法, 常用类型, 函数, .NET 互操作

    PowerShell 快速入门 开始之前, 我们认定你已经有一定的编程基础, 熟悉 .NET 中的类型与对象. 此文章对于 .NET 开发者来说更简单哦! 在 PowerShell 中, 几乎一切都是 ...

随机推荐

  1. java中异常的面试

    https://blog.csdn.net/qq_36523638/article/details/79363652 1) Java中的检查型异常和非检查型异常有什么区别? 这又是一个非常流行的Jav ...

  2. 关于 C# 中 Dictionary与Hashtable的性能测试

    https://www.cnblogs.com/qianxingdewoniu/p/5266243.html

  3. 虚拟机centos无法连接外网时怎么处理

    1. 首先查看service 如果没有启动请启动这2个服务. 2. 在虚拟机那重启网络端口 ifdown ens33 ifup ens33

  4. ntp 时间同步

    NTP 是网络时间协议(Network Time Protocol)的简称,通过 udp 123 端口进行网络时钟同步 一.安装 # 既可做服务端也可做客户端 yum install -y ntp # ...

  5. JAVA核心技术I---JAVA基础知识(对象与类)

    一:规范 将每一个类存在一个单独的源文件中 Employee.java public class Employee { private int age; private float salay; pr ...

  6. Hadoop记录-Hadoop jmx

    https://cwiki.apache.org/confluence/display/EAG/Hadoop+JMX+Monitoring+and+Alerting curl http://10.11 ...

  7. [JVM-3]Java垃圾回收(GC)机制和垃圾收集器选择

    哪些内存需要回收? 1.引用计数法 这个算法的实现是,给对象中添加一个引用计数器,每当一个地方引用这个对象时,计数器值+1:当引用失效时,计数器值-1.任何时刻计数值为0的对象就是不可能再被使用的.这 ...

  8. DirectX11 With Windows SDK--05 键盘和鼠标输入

    前言 提供键鼠输入可以说是一个游戏的必备要素.在这里,我们不使用DirectInput,而是使用Windows的消息处理机制,不过要从头开始实现会让事情变得很复杂.DXTK提供了鼠标输入的Mouse. ...

  9. 5年GTD自我管理经验,一块听听

    我在胜利油田做了20多年的油田信息化工作,以前的我经常处于这样一种状态: 当我正在做着手边的一项事情时,头脑里却不断地蹦出来其它的事务,让我烦心不已,焦虑不安:PPT经常要拖到汇报当天的凌晨才做完,有 ...

  10. maven多模块依赖源码调试

    Maven多模块项目中,通常存在摸个模块同时依赖其他多个基础模块的情况.在eclipse中使用run-jetty-run插件调试时,常常会出现找不到被依赖模块对应源码的错误提示.举个例子,模块A同时依 ...