Declare @DayOne DateTime --按天,今天 SET @DayOne = DATEADD (dd, DATEDIFF (dd, 0, getdate ()), 0) --按周,周的第一天 SET @DayOne = DATEADD (wk, DATEDIFF (wk, 0, getdate ()), 0) --按月,月的第一天 SET @DayOne = DATEADD (mm, DATEDIFF (mm, 0, getdate ()), 0) --连接删除: Delete a From tableA a Left Join TableB b On a.XXX = b.XXX Where a.YYY='yyy' --连接更新: UPDATE a SET a.password = 1 FROM sys_user a --分页查询 SELECT * FROM ( SELECT ROW_NUMBER () OVER (ORDER BY a.CardCode) AS rownum, a.CompanyID, a.CustomerID, a.CustomerName FROM vwCRM_Bas_CardCustomerInfo a WHERE a.Tel = '33' AND a.CustomerName = '包子' ) AS data WHERE data.rownum BETWEEN '1' AND '10'; --字符串处理 right(str,length) 取右边length长度的子字符串 ltrim() 函数从字符串左侧删除空格或其他预定义字符, 还可以将数字转换成字符。 --由'hk0000000182' --> 0000000183 declare @LogID varchar(20) declare @maxNum int set @LogID = 'hk0000000182' Select @maxNum = right(@LogID,10) select @maxNum select right('0000000000'+ltrim(@maxNum+1),10) --注意以下两句的区别 select right('00000' + ltrim( '003'+ 3), 5) Sequence --> 00006 select right('00000' + ( '003'+ 3), 5) Sequence --> 6 --根据行号生成序号 : 00001, 00002 等 Right('00000' + ltrim(ROW_NUMBER() OVER (ORDER BY WaveBillNo)), 5) Sequence, 拼接列值 Select ID + ',' From UserInfo FOR XML PATH('') 建表:(自增,多主键,默认值) CREATE TABLE CSM_OTH_VipBabyInfo ( CompanyID INT IDENTITY (1, 1), NewVipID VARCHAR (20), OldVipID VARCHAR (20), ModifyDTM DATETIME DEFAULT getdate () NOT NULL, CONSTRAINT pk PRIMARY KEY (CompanyID, NewVipID, OldVipID) ) 带输入输出的存储过程的执行示例: declare @RetVal int exec spCSM_ChangeVipCard 'hk','a',@RetVal output select @RetVal DECLARE @MaxBatchNo INT = 0; EXEC spCRM_GetMaxNum @ComCode = @CompanyID, @MaxNum = @MaxBatchNo output SELECT @MaxBatchNo 1.inner join on 内部连接 两表都满足的组合 2.full outer 全连 两表相同的组合在一起,A表有,B表没有的数据(显示为null),同样B表有,A表没有的显示为(null) 3.A表 left join B表 左连,以A表为基础,A表的全部数据,B表有的组合。没有的为null 4.A表 right join B表 右连,以B表为基础,B表的全部数据,A表的有的组合。没有的为null 5.cross join : 笛卡尔积 DML(data manipulation language):数据操作语言 包括命令:SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。 DDL(data definition language):数据定义语言 通常是数据库管理系统的一部分,用于定义数据库的所有特性和属性,尤其是行布局、列定义、键列(有时是选键方法)、文件位置和存储策略。 包括命令:DROP,CREATE,ALTER,GRANT,REVOKE, TRUNCATE SQL Server 支持临时表。临时表就是那些名称以井号 (#) 开头的表。如果当用户断开连接时没有除去临时表,SQL Server 将自动除去临时表。临时表不存储在当前数据库内,而是存储在系统数据库 tempdb 内。 临时表有两种类型: 本地临时表 以一个井号 (#) 开头的那些表名。只有在创建本地临时表的连接上才能看到这些表。 全局临时表 以两个井号 (##) 开头的那些表名。在所有连接上都能看到全局临时表。如果在创建全局临时表的连接断开前没有显式地除去这些表,那么只要所有其它任务停止引用它们,这些表即被除去。当创建全局临时表的连接断开后,新的任务不能再引用它们。当前的语句一执行完,任务与表之间的关联即被除去;因此通常情况下,只要创建全局临时表的连接断开,全局临时表即被除去。