USE [Role]
GO /*Create a table*/
IF OBJECT_ID ('dbo.Users', 'U') IS NOT NULL
DROP TABLE Users
GO
CREATE TABLE [dbo].[Users](
[ID] [int] IDENTITY(1,1) NOT NULL,
[UserName] [varchar](50) NOT NULL,
[Password] [varchar](20) NOT NULL,
[TrueName] [varchar](50) NULL,
[sex] [varchar](2) NULL,
[Birthday] [datetime] NULL,
[Phone] [varchar](20) NULL,
[Email] [varchar](50) NULL,
[CreateTime] [datetime] NULL,
CONSTRAINT [PK_Accounts_Users] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO /*Create procedure about select*/
IF OBJECT_ID('GetUserBy','p') IS NOT NULL
DROP PROCEDURE GetUserBy
GO
CREATE PROCEDURE GetUserBy
@id int
AS
BEGIN
SELECT ID,UserName,Password,TrueName,sex,Birthday,Phone,Email FROM [Users] WHERE [Users].[ID]=@id
END
GO EXECUTE GetUserBy @id=1
GO /*Insert*/
CREATE PROCEDURE Insertuser
@userName varchar(50)
,@password varchar(20)
,@trueName varchar(50)
,@sex varchar(2)
,@birthday datetime
,@phone varchar(20)
,@email varchar(20)
AS
BEGIN
INSERT INTO [Users]([UserName],[Password],[TrueName],[sex],[Birthday],[Phone],[Email],[CreateTime])
VALUES(@userName,@password,@trueName,@sex,@birthday,@phone,@email,GETDATE())
END
GO EXECUTE Insertuser @userName='Admin',@password=''
,@truename='Adminstrator',@sex='男',@birthday='2014-08-31'
,@phone='',@email='a@136.com'
Go
/*Insert user return id*/
CREATE PROCEDURE InsertUserReturenId
@userName varchar(50)
,@password varchar(20)
,@trueName varchar(50)
,@sex varchar(2)
,@birthday datetime
,@phone varchar(20)
,@email varchar(20)
AS
BEGIN
INSERT INTO [Users]([UserName],[Password],[TrueName],[sex],[Birthday],[Phone],[Email],[CreateTime])
VALUES(@userName,@password,@trueName,@sex,@birthday,@phone,@email,GETDATE());
SELECT @@IDENTITY
END
GO EXECUTE InsertUserReturenId @userName='Admin',@password=''
,@truename='Adminstrator',@sex='男',@birthday='2014-08-31'
,@phone='',@email='a@136.com'
Go /*Update*/
CREATE PROCEDURE UpdateUser
@id int
,@password varchar(20)
AS
BEGIN
UPDATE [Users] SET [Password]=@password WHERE [ID]=@id
END
GO EXECUTE UpdateUser @id=15,@password=''
GO
/*Delete*/
CREATE PROCEDURE DeleteUserById
@id int
AS
BEGIN
DELETE FROM [Users] WHERE [ID]=@id
END
GO EXECUTE DeleteUserById @id=1
GO /**Clear table**/ Truncate table [Users]
GO /*loop insert data*/
DECLARE
@userName varchar(50)
,@password varchar(20)
,@trueName varchar(50)
,@sex varchar(2)
,@birthday datetime
,@phone varchar(20)
,@email varchar(20)
,@i int SET @userName='Admin'
SET @password=''
SET @trueName='Adminstrator'
SET @sex='男'
SET @birthday='2014-08-31'
SET @phone=''
SET @email='q@138.com'
SET @i=30 WHILE @i<31
BEGIN
SET @userName='admin'+CONVERT(varchar(2),@i)
INSERT INTO [Users]([UserName],[Password],[TrueName],[sex],[Birthday],[Phone],[Email],[CreateTime])
VALUES(@userName,@password,@trueName,@sex,@birthday,@phone,@email,GETDATE())
SET @i=@i+1
END
GO /*Page and sort*/
CREATE PROCEDURE QueryUserByPage1
@pageSize int
,@currentPage int
,@searchName varchar(50)
,@flag int
AS
DECLARE @startPgae int,@endPage int,@sort varchar(50),@sql varchar(1000)
SET @startPgae=@currentPage * @pageSize
SET @endPage=@startPgae + @pageSize -1
SET @sort=
CASE WHEN @flag=1 THEN 'ID'
WHEN @flag=2 THEN 'UserName'
WHEN @flag=3 THEN 'CreateTime'
END
BEGIN
SELECT ROW_NUMBER() OVER(ORDER BY @sort DESC) AS userId FROM [Users]
WHERE useId BETWEEN @startPgae AND @endPage
END
GO /*Pgae*/
IF OBJECT_ID ('QueryUserByPage', 'p') IS NOT NULL
DROP PROCEDURE QueryUserByPage
GO
CREATE PROCEDURE QueryUserByPage
@pageSize int
,@currentPage int
,@searchName varchar(50)
AS
DECLARE @startPgae int,@endPage int
SET @startPgae=(@currentPage-1) * @pageSize + 1
SET @endPage=@startPgae + @pageSize - 1
SET @searchName='%'+RTRIM(@searchName)+'%'
BEGIN
SELECT * FROM
(
SELECT *, ROW_NUMBER() OVER(ORDER BY ID DESC) AS userId
FROM [Users]
WHERE
[UserName] LIKE @searchName
)
tuser
WHERE tuser.userId BETWEEN @startPgae AND @endPage
END
GO
/*拼接字符串分页*/
CREATE PROCEDURE QueryUserByPage2
@start int
,@end int
AS
DECLARE @sql nvarchar(600)
set @sql='select top '+str(@end-@start+1)+' * from Users where ID not in(select top'+str(@start-1)+' ID from Users)'
BEGIN
execute(@sql)
END
GO QueryUserByPage2 @start=2,@end=10
GO


EXECUTE QueryUserByPage @pageSize=10,@currentPage=1,@searchName=''
GO DECLARE
@name varchar(50)
,@description varchar(50)
,@i int
SET @description='teacher'
SET @i=1
WHILE @i<=10
BEGIN
SET @name = 'teacher' + CONVERT(varchar(2),@i)
INSERT INTO [Roles] VALUES(@name,@description)
SET @i=@i+1
END
GO SELECT * from Roles TRUNCATE table Roles
GO SELECT * FROM [UserRoles]
LEFT JOIN [Roles] ON [UserRoles].[RoleID]=[Roles].[ID]
WHERE [UserRoles].[UserID]=1
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
随机产生
select top 10 * from Users order by newid()
左外连接 (Left  Jion):包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行
select * from test1 left join test2 on test1.id = test2.id

右外连接 (Rigt Jion):包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行

select * from test1 right join test2 on test1.id = test2.id


 
declare @name varchar(50),@flag int
SET @name =
CASE
WHEN @flag = 0 THEN 'Mfg item - not for resale'
WHEN @flag < 50 THEN 'Under $50'
WHEN @flag >= 50 and @flag < 250 THEN 'Under $250'
WHEN @flag >= 250 and @flag < 1000 THEN 'Under $1000'
ELSE 'Over $1000'
END
IF @cost <= @compareprice
BEGIN
PRINT 'These products can be purchased for less than
$'+RTRIM(CAST(@compareprice AS varchar(20)))+'.'
END

SqlServer ,storedprocedure操作的更多相关文章

  1. 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类

    在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...

  2. Sqlserver日期操作

    Sqlserver日期操作 select GETDATE() as '当前日期', DateName(year,GetDate()) as '年', DateName(month,GetDate()) ...

  3. SQLserver数据库操作帮助类SqlHelper

    1 SqlHelper源码 using System; using System.Data; using System.Xml; using System.Data.SqlClient; using ...

  4. SQLServer数据操作(建库、建表以及数据的增删查改)

              SQLSever数据操作   一.建立数据库:   create database DB ---数据库名称 (          name=data1 --文件名,         ...

  5. C# 连接 SQLServer 及操作

    随笔:连接: // 将tb_User表数据添加到DataGridView中 string sqlconn = "Data Source=localhost;Initial Catalog=d ...

  6. sqlserver 表操作 SQL篇

    数据库知识点 1.数据库操作: 增:insert into 表名 values(值1,值2,值3) 删:delete 列名 from 表名 where 条件 改:update 表名 set =值 wh ...

  7. (转)SQLServer分区表操作

    原文地址:https://www.cnblogs.com/libingql/p/4087598.html 1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一 ...

  8. SQLServer数据操作(建库、建表以及数据的增删查改)[转]

    SQLSever数据操作   一.建立数据库:   create database DB ---数据库名称 (          name=data1 --文件名,          filename ...

  9. SqlServer知识点-操作xml

    一.开发环境 SQL2010 二.开发过程 1.声明一个xml类型变量 DECLARE @xmlInfo XML; SET @xmlInfo = '<CompanyGroup> <C ...

随机推荐

  1. [Java] HashMap遍历的两种方式

    Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml第一种: Map map = new HashMap( ...

  2. Android进阶笔记18:选用合适的IPC方式

    1. 相信大家都知道Android进程间通信方式很多,比如AIDL.Messenger等等,接下来我就总结一下这些IPC方式优缺点. 2. IPC方式的优缺点和适用场景 3. 附加:使用Intent实 ...

  3. Android 4.4 新特性分析-15项大改进!

    Google发布了Android 4.4 KitKat,并其同时面世的还有新旗舰Nexus 5.Android 4.4 KitKat有怎样的改进.是否值得升级呢,下面就为大家呈现Android 4.4 ...

  4. c++ STL:队列queue、优先队列priority queue 的使用

    说明:本文全文转载而来,原文链接:http://www.cppblog.com/wanghaiguang/archive/2012/06/05/177644.html C++ Queues(队列) C ...

  5. Ubuntu14.04 搭建 node.js 环境(Binaries方式)

    从官网下载 http://nodejs.org/download/ Linux Binaries (.tar.gz)  下载下来的是node-v0.10.29-linux-x64.tar.gz文件 解 ...

  6. xml格式化成json

    JsonConvert.SerializeObject(model)   XmlDocument doc = new XmlDocument();                    doc.Loa ...

  7. CSS3笔记

    CSS/CSS3在线手册:http://www.css119.com/book/css/   CSS3实现水平垂直居中:http://bbs.html5cn.org/thread-87300-1-1. ...

  8. web.config配置aspx页面默认引用的namespace

    如果我们在aspx页面上使用<%%>的方式使用某些类的时候很多都没办法直接使用,我们必须要在页面上引用命名空间, 如:如果我们要使用DataTable类的时候,我们必须先使用<%@ ...

  9. Part 53 to 55 Talking about Reflection in C#

    Part 53 Reflection in C# Part 54 Reflection Example here is the code private void btnDiscover_Click( ...

  10. MVC EF ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。

    遇到这个错误  在查询时 加上asNoTracking() 即可