首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL Server中的GUID

GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。...1、在 SQL Server 中使用 GUID 如果在 SQL Server 的表定义中将列类型指定为 uniqueidentifier,则列的值就为 GUID 类型。...SQL Server 中的 NewID() 函数可以产生 GUID 唯一值,使用此函数的几种方式如下: 1) 作为列默认值 将 uniqueidentifier 的列的默认值设为 NewID(),这样当新行插入表中时...而 Guid 计算全部 16 个字节,这种差异可能会给 SQL Server 中 uniqueidentifier 列的排序带来一定影响,当然这种排序意义也不大。...便于数据库移植,其它数据库中并不一定具有 IDENTITY 列,而 Guid 列可以作为字符型列转换到其它数据库中,同时将应用程序中产生的 GUID 值存入数据库,它不会对原有数据带来影响。

5.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SQL 找出分组中具有极值的行

    就拿 emp 举例,要从 emp 表中获取每个部门薪资最高的员工的信息。emp 表的数据如下: ? 最终的查询结果如下图。 ? 要实现这个查询功能,有多少种实现方法呢?...子查询 如果你的数据库还不支持窗口函数,那可以先对 emp 分组,取出每个部门中的最高薪资,再和原表做一次关联就能获取到正确的结果。...b.sal WHERE b.sal IS NULL ORDER BY a.deptno 我们知道,在SELECT * FROM a left join b on 关联条件 语句中 ,不论在 b 表中是否有数据行可以和...在关联条件 b.deptno = a.deptno AND a.sal 中,只要 a.sal 不是分组内的最大值,总能在 b 表中找到比它大的数据。...当 a.sal 是分组的内的最大值时,a.sal 的条件不成立,关联出来的结果中 b 表的数据为 NULL。

    1.8K30

    SQL SERVER修改函数名引起的问题

    问题 今天遇到一个奇怪的问题:使用sp_helptext XXX查询出来的函数定义名竟然跟函数名不同,而sp_helptext实际是查询sys.all_sql_modules这个系统视图的。...第二个问题,我想没什么可能,SQL SERVER发展到今天(SQL 2016正式版准备推出,我使用的环境则是SQL 2008 R2,打了SP3),已经是很成熟的一个系统,即使是出现BUG也不是我这种水平的人能发现的...我马上就想起这个函数在一个多星期前,因为测试的需要,通过SSMS改了原函数名,而SQL SERVER不会因为改名去更新sys.all_sql_modules视图的definition字段的!...于是就造成了已经编译好的函数与sys.all_sql_modules系统视图的函数定义出现了不一致的情况。 2. 重视与分析问题 做一个测试来重现下问题。...但如果函数或存储过程太多,会觉得sp_helptext和sys.all_sql_modules会更方便些,查询出来的结果要认真核对下对象名是否一致即可。

    1K130

    SQL Server中的锁的简单学习

    简介     在SQL Server中,每一个查询都会找到最短路径实现自己的目标。如果数据库只接受一个连接一次只执行一个查询。那么查询当然是要多快好省的完成工作。...所在资源的信息也就是前面图3中以Resource开头的信息。     对于查询本身来说,并不关心锁的问题。就像你开车并不关心哪个路口该有红绿灯一样。...开发人员不用担心SQL Server是如何决定使用哪个锁的。因为SQL Server已经做了最好的选择。     在SQL Server中,锁的粒度如表1所示。...SQL Server通过U锁来避免死锁问题。因为S锁和S锁是兼容的,通过U锁和S锁兼容,来使得更新查找时并不影响数据查找,而U锁和U锁之间并不兼容,从而减少了死锁可能性。这个概念如图12所示。...在SQL Server中,资源是有层次的,一个表中可以包含N个页,而一个页中可以包含N个行。当我们在某一个行中加了锁时。可以理解成包含这个行的页,和表的一部分已经被锁定。

    1.9K60

    SQL Server不区分大小写的问题

    SQL Server不区分大小写的问题   默认情况下,SQL Server不区分大小写,如果数据表TEST的TNAME列中有数据“abcd”和“Abcd”, 如果使用查询语句:select * from... test  where  tname  like 'a%',则查询的结果会把上面的两条记录都查询出来,这一点上和Oracle有区别.  ...可以通过设置排序规使其区分大小写,可以分别在创建数据库、修改数据库、创建表的字符型列(char\varchar\nchar \nvarchar等)时指定排序规则来实现。...   --修改后的数据库中区分大小写 Create table test(tid int primary key,tname varchar(20) COLLATE  Chinese_PRC_CS_AS...) --这样创建的tname列在使用SELECT 语句时就可以区分大小写了。

    3.3K20

    SQL Server 2008 表设计无法保存的问题

    尝试在 SQL Server 2008 中保存表时出现错误消息:"保存的更改不允许的" 解决方法: 启动SQL Server 2008 Management Studio 工具菜单----选项----Designers...但后来想想,sql server 2008在这一点的考虑还是很周到的,不管是什么样的解决方案,底层的数据库结果如果发生变化都会对上层产生影响,上层与底层的不匹配也必然会带来诸多麻烦。...结合进来自己研究的实体框架来说,由数据库产生实体后,它生成了ssdl,msl,csdl,这些文件是不会随着数据库的变化而自动变化的。...一旦数据库在不通知实体生成工具的情况下,做了表结构的更改,那带来的后果必然是导致实体类文件的应用出错。尽管它可能会为开发人员带来数据库字段更改上的麻烦,但却降低了底层与上层结合时发生错误的几率。...所以这样看来,“阻止保存要求重新创建表的更改”这一默认选项的设置还是别有一番深意的。

    1.7K20

    SQL Server2005中的SMO编程

    SMO是SQL Mangagement Objects的简称.与之相对应的是ADO.Net,不过不同的地方是ADO.Net是用于数据访问的,而SMO是用于设计的,虽然SMO能够再服务器上执行任意的SQL...语句.另外一个不同的地方是ADO.Net可以访问计算机中任意数据源,而SMO对象是专门针对SQL Server而设计的....在SMO中最重要的一个类就是Server.其他大多数对象都是Server对象的后代.比如Database,Table,View等等对象都是通过Server属性不断向下检索到的.....我们可以输入如下代码使用Server对象给出某服务器中的数据库数目: using System; using Microsoft.SqlServer.Management.Smo; namespace...} } 运行以上代码就可以得到服务器上数据库的数目.下面我们再来看看在SMO中对数据库常见的操作: 1,创建删除数据库.

    1K10

    SQL Server 2008中增强的汇总技巧

    SQL Server 2008中SQL应用系列--目录索引 SQL Server 2008中对汇总有明显的增强,有点像Oracle的语法了。...CYear)=1 THEN '所有汇总' else '正常行' END as 行类别, SUM(CMoney) 总收入 FROM tb_Income GROUP BY CUBE (TeamID,CYear) 结果...: 五、使用Grouping_ID标识分组级别(http://technet.microsoft.com/zh-cn/library/bb510624.aspx) 为了更清楚地说明问题,我们需要修改一下表结构...CYear =2011 AND CMonth=2 GROUP BY CUBE (TeamID,AreaID,CMonth) ----ORDER BY TeamID,AreaID,CMonth 统计结果...,这里需要稍微解释一下,Grouping_ID接受几个输入列,返回二进制列列表计算的整数值,你可以把这三个维度,看作是(0,1,1)、(0,1,0)这样类似的二进制,而Grouping_ID负责将运算结果以整数形式返回

    1.2K30

    sql server中的DDM动态数据屏蔽

    view=sql-server-ver16动态数据屏蔽概述动态数据掩码允许用户在尽量减少对应用程序层的影响的情况下,指定需要披露的敏感数据量,从而防止对敏感数据的非授权访问。...可以在指定的数据库字段上配置 DDM,在查询结果集中隐藏敏感数据。 使用 DDM 时,数据库中的数据不会更改。 对于现有应用程序而言 DDM 非常易用,因为查询结果中应用了屏蔽规则。...动态数据掩码是对其他 SQL Server 安全功能(审核、加密、行级别安全性等)的补充,强烈建议将此功能与上述功能一起使用,以便更好地保护数据库中的敏感数据。...动态数据掩码在 SQL Server 2016 (13.x) 和 Azure SQL 数据库中提供,使用 Transact-SQL 命令进行配置。...运行 SQL Server 导入和导出时,将应用动态数据屏蔽。

    15910

    理解和使用SQL Server中的并行

    最大DOP对于每一个并行区域都是由SQLServer的逻辑处理单元的可利用数量决定的(物理核) 并行扫描和并行页支持     图4中的问题是每个索引扫描操作符都会去数整个输入集的每一行。...不及时纠正,计划就会产生错误的结果集并且和可能花费更多时间。手工并行的例子通过使用where子句来避免这个问题。    ...主要好处之一就是复杂度通常与分享数据的多个执行的线程有关,而这些线程由SQLServer一个内部操作符处理。另外,在计划中的非交换操作符是完全串行执行的,并且不需要去关心这些问题。    ...服务器的有8个或更少的处理器,使用下列配置其中N等于处理器数:MAXDOP=0到N。 2. 对于具有NUMA配置的服务器,MAXDOP不应超过分配给每个NUMA节点的cpu数。 3....除此之外还介绍了交换操作符以及操作符内部详细构造以及最佳实践中的并行度配置。这里都这是从概念上做了介绍,如果线下有问题可以一起研究选择出最好的实现方式。

    2.9K90
    领券