-
SqlServer中的视图介绍
一):视图的定义视图是由基于一个或多个表的一个查询所定义的虚拟表,它将查询的具体定义保存起来,视图不包含任何数据。视图在操作上和数据表没有什么区别,但两者的差异是在其本质上的...
数据库操作教程 2022-09-23 17:25:30 -
sqlserver中Selectcount(*)和Count(1)的区别和执行方式
在SQLServer中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的...
数据库操作教程 2022-09-23 17:25:26 -
sqlserver合并DataTable并排除重复数据的通用方法分享
代码如下:复制代码代码如下:///<summary>///将两个列不同的DataTable合并成一个新的DataTable///</summary>///<paramname="dt1">源表</param>///<paramname="dt2">需要合并的表</param>///<paramname="primaryKey">需要排重列表(为空不排重)</param>///<paramname="maxRows">合并后Table的最大行数</param>///<returns>合并后的datatable</returns>publicstaticDataTableMergeDataTable(DataTabledt1,DataTabledt2,stringprimaryKey,intmaxRows){//判断是否需要合并if(dt1==null&&dt2==null){returnnull;}if(dt1==null&...
数据库操作教程 2022-09-23 17:25:18 -
通过SQLServer的位运算功能巧妙解决多选查询方法
无论使用int还是varchar,对于Status的多选查询都是不易应对的。举例,常规思维下对CustomerStatus的Enum设置如下:复制代码代码如下:[Serializable]publicenumCustomerStatus{New=0,Active=1,Overdue=2,Suspended=3,Closing=4,Closed=5}在数据库中以int形式存储了Status值...
数据库操作教程 2022-09-23 17:25:14 -
SQLServer自动增长清零的方法
方法1:复制代码代码如下:truncatetableTableName删除表中的所有的数据的同时,将自动增长清零。如果有外键参考这个表,这个方法会报错(即便主键表和外键表都已经没有数据),请参考方法2...
数据库操作教程 2022-09-23 17:25:12 -
理解SQLSERVER中的逻辑读,预读和物理读
SQLSERVER数据存储的形式 在谈到几种不同的读取方式之前,首先要理解SQLSERVER数据存储的方式.SQLSERVER存储的最小单位为页(Page).每一页大小为8k,SQLSERVER对于页的读取是原子性,要么读完一页,要么完全不读,不会有中间状态。而页之间的数据组织结构为B树(请参考我之前的博文).所以SQLSERVER对于逻辑读,预读,和物理读的单位是页. SQLSERVER一页的总大小为:8K 但是这一页存储的数据会是:8K=8192字节-96字节(页头)-36字节(行偏移)=8060字节 所以每一页用于存储的实际大小为8060字节. 比如上面AdventureWorks中的Person.Address表,通过SSMS看到这个...
数据库操作教程 2022-09-23 17:25:09 -
深入SQLSERVER合并相关操作Union,Except,Intersect的详解
对于结果集有几个处理,值得讲解一下1.并集(union,Unionall)这个很简单,是把两个结果集水平合并起来。例如SELECT*FROMAUNIONSELECT*FROMB【注意】union会删除重复值,也就是说A和B中重复的行,最终只会出现一次,而unionall则会保留重复行...
数据库操作教程 2022-09-23 17:25:01 -
sqlserver对字段的添加修改删除、以及字段的说明
复制代码代码如下:--新增表字段ALTERprocedure[dbo].[sp_Web_TableFiled_Insert](@TableNamevarchar(100),@FieldNamevarchar(100),@FieldExplainvarchar(200),@DataTypevarchar(100),@ConnectTableNamevarchar(100),@FieldLengthint,@NewsIDintoutput)asbegintransactionmytrandeclare@errorSumintifnotexists(SELECT*FROMsyscolumnswhereid=object_id(@TableName)ANDname=@FieldName)begininserttb_TableField(TableName,FieldName,FieldExplain,DataType,ConnectTableName,FieldLength,UserSetSign)values(@TableName,@FieldName,@FieldExplain,@Data...
数据库操作教程 2022-09-23 17:24:52 -
sqlserver数据库最大Id冲突问题解决方法之一
复制代码代码如下:CREATETABLE[dbo].[TbGuidTable]([TableName][varchar](50)NOTNULL,[KeyName][varchar](20)NOTNULL,[KeyValue][varchar](100)NOTNULL)ON[PRIMARY]GOifexists(select*fromdbo...
数据库操作教程 2022-09-23 17:24:48 -
深入SQLServer中定长char(n)与变长varchar(n)的区别详解
char(n)是定长格式,格式为char(n)的字段固定占用n个字符宽度,如果实际存放的数据长度超过n将被截取多出部分,如果长度小于n就用空字符填充。varchar(n)是变长格式,这种格式的字段根据实际数据长度分配空间,不浪费对于的空间,但是搜索数据的速度会麻烦一点...
数据库操作教程 2022-09-23 17:24:42 -
SQLServer提取数字、提取英文、提取中文的sql语句
--SQL判断字段值是否有中文createfunctionfun_getCN(@strnvarchar(4000))returnsnvarchar(4000)asbegindeclare@wordnchar(1),@CNnvarchar(4000)set@CN=''whilelen(@str)>0beginset@word=left(@str,1)ifunicode(@word)between19968and19968+20901set@CN=@CN+@wordset@str=right(@str,len(@str)-1)[email protected]_getCN('ASDKG论坛KDL')--论坛selectdbo...
数据库操作教程 2022-09-23 17:24:40