1、连接字符串

  SQL Server 身份验证,如:"server=yqzhu-peter;database=WindWMNew1_DB;uid=sa;pwd=ABcd1234;Connect Timeout=1000"

2、sa(system administrator),dbo(database owner)

3、SQL 不区分大小写,包括sql语句,数据库名,表名,字段名,变量名,函数名,以及字段中实际值的比较

use wfc_db
go create table TestCase(
Id int,
CaseName varchar(20),
UpdateDate datetime
) alter table testcase
add [from] varchar(20) insert into Dbo.TestCase
values(1, '', Getdate(), 'shanghai')
insert into Dbo.TestCase
values(2, '', Getdate(), 'NANJING') select * from Dbo.TestCase declare @aa varchar(20)
select @aa = 'SHANGHAI'
print @AA
if @AA = (select [from] from testcase)
print 'yes'
else
print 'no' select [from] from testcase
DELETE FROM TESTCASE WHERE ID = 2

  1、当对象名为sql中的关键字时,需要用[]包括

  2、创建表时,字段默认是可空的

4、in的两种基本使用方式:

  1、简单的方式:select * from testcase where [from] in ('shanghai')

  2、组合方式: select * from testcase where [from] in (select [from] from testcase where datediff(day, updatedate, getdate()) = 4)

   注意该方式的select子句返回必须为一维表,否则会报错

5、 批量插入:  insert into persons(name, classId)  select name, 1 from students  

      或       insert into persons(name, classId)  values ('cheng', 1), ('cheng2', 2), ('cheng3', 3),     

6、可以定义表变量:

    DECLARE @temptb TABLE (

      [id] int identity(1,1),
      UserID varchar(50)
    )

  该变量常用于字符串的处理

7、自定义函数:

  有三种类型: 1、标量函数 2、内联表值函数 3、多语句表值函数

  详细可参考: 1、SQL Function 自定义函数

         2、SQLServer:FUNCTION/CURSOR/PROCEDURE/TRIGGER

         3、SQL Server游标的使用【转】

8、查询重复记录

  distinct关键字只能去除重复字段,而不能用于多个字段,如select distinct name from tb_student可行,但select distinct name, age from tb_student会报错

  查询重复记录方式是使用group by及having子句,如

select wid, count(*) from TB_CustLotteryInfo
where [datetime] > ''
group by wid
having count(*) > 3

9、存储过程返回数据的三种方式:

  a、通过select,返回标量值或table

    对应标量值,sql:select 1,c#:dt.Rows[0][0].ToString()

  b、output关键字,可以参考SQLServer:FUNCTION/CURSOR/PROCEDURE/TRIGGER

    这种方式应用在sql调用存储过程

  c、影响的行数

  sql中return的作用是使存储过程立即返回,与其他编程语言的return不同

10、游标的使用,详细可参考: SQL Server游标的使用【转】

使用C#定义一个DBHelper,并兼容多种类型的数据库

实例源码DBHelperTest.rar

说明:

1、当记录的某列为可空时,应当判断是否为DBNull.Value再进行类型转换,如:

  FirstName = reader["FirstName"] == DBNull.Value ?  "" : (string)reader["FirstName"];

2、表Employees的模式

create table Employee(
id int IDENTITY(1,1) primary key,
FirstName varchar(255),
SecondName varchar(255),
Salary decimal(10, 2)
)

  存储过程SP_DeleteEmployeeById

ALTER PROCEDURE [dbo].[SP_DeleteEmployeeById](
@ids varchar(100)
)
AS
BEGIN
declare @temptb table(
id int
)
declare @index int
declare @str varchar(10)
select @str = @ids
select @index = charindex(',', @str)
while @index > 1
begin
insert into @temptb values(cast(left(@str, @index - 1) as int))
select @str = right(@str, len(@str) - @index)
select @index = charindex(',', @str)
end
insert into @temptb values(cast(@str as int)) delete from dbo.Employees where id in (select id from @temptb)
END

  存储过程SP_GetEmployees

ALTER PROCEDURE [dbo].[SP_GetEmployees](
@id int
)
AS
BEGIN
if @id = 0
select * from dbo.Employees
else
select * from dbo.Employees where id = @id
END

参考:1、数据库访问类DBHelper  2、如何做个好用的数据库访问类

SQL Server使用笔记的更多相关文章

  1. SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器

    SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器 1. T-SQL编程 (1)声明变量 declare @age int (2)为变量赋值 (3)while循环 ...

  2. 【SQL Server学习笔记】Delete 语句、Output 子句、Merge语句

    原文:[SQL Server学习笔记]Delete 语句.Output 子句.Merge语句 DELETE语句 --建表 select * into distribution from sys.obj ...

  3. sql server 常见问题笔记

    1.关于复制类型 快照发布:发布服务器按预定的时间间隔向订阅服务器发送已发布数据的快照. 事务发布:在订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器. 对等发布:对等发布支 ...

  4. sql server 2008笔记

    sql server 2008开启远程访问数据库 1.以windows验证模式进入数据库管理器. 第二步:右击sa,选择属性: 在常规选项卡中,重新填写密码和确认密码(改成个好记的).把强制实施密码策 ...

  5. SQL server 学习笔记1

    1.查询安装的排序规则选项喝当前的排序规则服务器属性 select * from fn_helpcollations(); 2.查看当前服务器的排序规则 select serverproperty(' ...

  6. SQL Server 自学笔记

    --★★★SQL语句本身区分大小写吗 --SQLServer 不区分大小写 --Oracle 默认是区分大小写的 --datetime的输入格式,2008-01-07输入进去后显示为1905-06-2 ...

  7. SQL Server -- 回忆笔记(四):case函数,索引,子查询,分页查询,视图,存储过程

    SQL Server知识点回忆篇(四):case函数,索引,子查询,分页查询,视图,存储过程 1. CASE函数(相当于C#中的Switch) then '未成年人' else '成年人' end f ...

  8. SQL Server -- 回忆笔记(三):ADO.NET之C#操作数据库

    SQL Server知识点回忆篇(三):ADO.NET之C#操作数据库 1.连接数据库 (1)创建连接字符串: 使用windows身份验证时的连接字符串: private string conStr= ...

  9. SQL Server -- 回忆笔记(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询

    SQL Server知识点回忆篇(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询 1. insert 如果sql server设置的排序规则不是简体中文,必须在简体中文字符串前加N, ...

  10. SQL Server -- 回忆笔记(一):初见数据库

    SQL Server知识点回忆篇(一):初见数据库 1.  主键 primary key    唯一标识, 不会重复的值才会用来当做主键使用. 表可以没有主键,但建议每张表都有主键. 2.  数据冗余 ...

随机推荐

  1. 【vue】iView-admin后台管理系统

    1.目录手册解析 2.跨域解决(axios访问服务器由于前端地址和后端地址不同源会出现跨域问题) 实例2 3.动态菜单导航+权限 4.webstorm 配置 Eslint 代码检查和自动修复

  2. BZOJ1063 NOI2008 道路设计 树形DP

    题目传送门: BZOJ 题意精简版:给出一棵树,在一种方案中可以将树的若干链上的所有边的边权改为$0$,但需要保证任意两条链之间没有交点.问最少的一种方案,使得从根节点到其他节点经过的边的边权和的最大 ...

  3. SQL开发规范

    一.SQL代码规范: 1.头部 --************************************************************************** --所属主题: ...

  4. 【全网最全的博客美化系列教程】01.添加Github项目链接

    全网最全的博客美化系列教程相关文章目录 [全网最全的博客美化系列教程]01.添加Github项目链接 [全网最全的博客美化系列教程]02.添加QQ交谈链接 [全网最全的博客美化系列教程]03.给博客添 ...

  5. 【内存溢出】Maven编译时内存溢出的问题解决方式

    原文地址:https://www.cnblogs.com/sunny3096/p/7524635.html 编译源码时报出java.lang.OutOfMemoryError: Java heap s ...

  6. koa服务器搭建基础

    之前我一直使用rails搭建网站.rails与koa的基本理念很相似,都是基于中间件提供一层层的服务.所不同的是,rails有很多内置的中间件,这使得开发者只需要关注MVC模块以及页面路由.而Koa这 ...

  7. PM2用法简介

    简介 PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控.自动重启.负载均衡等,而且使用非常简单.引用 全局安装 sudo npm install pm2@lat ...

  8. 1060E Sergey and Subway(思维题,dfs)

    题意:给出一颗树,现在,给哪些距离为2的点对,加上一条边,问所有点对的距离和 题解:如果没有加入新的边,距离和就会等于每条边的贡献,由于是树,我们用点来代表点上面的边,对于每条边,它的贡献将是(子树大 ...

  9. c++ 入门之对象指针

    我们想 像使用基本数据类型一样使用类,自然,类自然也有指针,我们通过下面的代码来领教一下对象指针存在的意义: # include "iostream" # include &quo ...

  10. SVN插件和Tomcat插件地址

    SVN插件: http://subclipse.tigris.org/update_1.8.x Tomcat插件: http://tomcatplugin.sf.net/update 备注:如果svn ...