-
SQLServer存储过程中使用表值作为输入参数示例
在2008之前如果我们想要将表作为输入参数传递给SQLServer存储过程使比较困难的,可能需要很多的逻辑处理将这些表数据作为字符串或者XML传入。在2008中提供了表值参数...
数据库操作教程 2022-09-23 17:40:50 -
SQLServer中NULL的正确使用与空间占用
我们常在SQLServer的使用或维护中遇上NULL,那么什么是NULL?如下是MSDN给出的一段简短描述(见“NullValues”):AvalueofNULLindicatesthatthevalueisunknown.AvalueofNULLisdifferentfromanemptyorzerovalue.Notwonullvaluesareequal.Comparisonsbetweentwonullvalues,orbetweenaNULLandanyothervalue,returnunknownbecausethevalueofeachNULLisunknown.通俗的讲,NULL就是一个值,而且这个值是未知的(unknown);NULL不能等价任何值,甚至都不等价它自己,即NULL不等于NULL。为了清晰的理解上述的内容,我们创建一个测试表Test_NULL,然后对表插入2条含有NULL值的记录,并进行相关验证操作:--创建一张允许NULL值的表CREATETABLETest_NULL(numINTNOTNULLPRIMARYKEY,fnameNVARCHAR(50)...
数据库操作教程 2022-09-23 17:40:36 -
查询SQLServer启动时间的三种方法
上午在分析索引的使用情况,想看一下数据库什么时候启动的,确保统计的数据没有问题,可以使用下面三种方法查询:--2008及之后版本才有SELECTsqlserver_start_timeFROMsys.dm_os_sys_infoselectcrdatefrommaster...
数据库操作教程 2022-09-23 17:40:30 -
使用NotePad++录制宏功能如何快速将sql搜索条件加上前后单引号
當我們有很多筆的條件要對資料庫進行搜尋時,常常會用到下列的語法SELECT*FROMMemberWHEREaccuntin('Tom','John','May')在上述語法IN的搜尋條件中,有Tom、John、May三個帳號條件,資料量少的話,還可以一筆一筆的在帳號的前後加上單引號及後面加上逗號,可是當你遇到要一次查詢50個帳號的情況,一筆一筆的輸入,應該會耗費不少時間。以前我都會用Excel裡的CONCATENATE函式來處理這樣的資料,但是有一天同事教我可以用NotePad++的巨集功能來完成這件事情我覺得這方式比在Excel處理還快速,所以在這裡分享一下1.將要處理的搜尋條件貼到NotePad++,以下圖來看,有25筆(圖中的英文名字是從google隨機搜尋到的清單)2.因為巨集就是將你的操作紀錄下來,所以先將游標移到第一筆資料的開始位置,然後按下NotePad++工具列上的巨集按鈕,開始錄製3.因為游標已經在最開頭,也就是第一筆資料的位置,所以請直接用鍵盤,按照下面的鍵盤按鍵順序進行輸入(下方括號中的都是鍵盤的按鍵喔)「'」→「End」→「'」→「,」→「↓」→「H...
数据库操作教程 2022-09-23 17:39:42 -
简单介绍SQLServer中的自旋锁
为什么我们需要自旋锁?用闩锁同步多个线程间数据结构访问,在每个共享数据结构前都放置一个闩锁没有意义的。闩锁与此紧密关联:当你不能获得闩锁(因为其他人已经有一个不兼容的闩锁拿到),查询就会强制等待,并进入挂起(SUSPENDED)状态...
数据库操作教程 2022-09-23 17:39:40 -
SQLServer存储过程中编写事务处理的方法小结
本文实例讲述了SQLServer存储过程中编写事务处理的方法。分享给大家供大家参考,具体如下:SQLServer中数据库事务处理是相当有用的,鉴于很多SQL初学者编写的事务处理代码存往往存在漏洞,本文我们介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正确的代码...
数据库操作教程 2022-09-23 17:39:34 -
SQLSERVER清除历史记录的方法
删除前做备份。 使用SQLServer登录使用数据库时,登录过的记录会出现在登录框中,下面是删除方法:SQLServer2008删除盘符:DocumentsandSettings用户ApplicationDataMicrosoftMicrosoftSQLServer100ToolsShellSqlStudio.bin文件...
数据库操作教程 2022-09-23 17:39:30 -
解决SQLServer远程连接失败的问题
机房收费系统异地发布的时候,需要保证数据库能够远程连接,但连接的时候通常会报错:要解决这个问题,首先需要检查SqlServer的几项设置。(这些设置一般都是系统默认项,不过最好看一下)(一)检查SQLServer是否允许远程链接...
数据库操作教程 2022-09-23 17:39:22 -
如何调优SQLServer查询
在今天的文章里,我想给你展示下,当你想对特定查询创建索引设计时,如何把你的工作和思考过程传达给查询优化器。下面就一起来探讨一下吧!有问题的查询我们来看下列查询:DECLARE@iINT=999SELECTSalesOrderID,SalesOrderDetailID,CarrierTrackingNumber,OrderQty,LineTotalFROMSales.SalesOrderDetailWHEREProductID<@iORDERBYCarrierTrackingNumberGO如你所见,这里用了一个本地变量与一个不等于谓语来从Sales.SalesOrderDetail表来获取一些记录...
数据库操作教程 2022-09-23 17:39:08 -
SQLServer将一列的多行内容拼接成一行的实现方法
下面大家先看下示例代码:示例昨天遇到一个SQLServer的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据:类别名称AAA企业1AAA企业2AAA企业3BBB企业4BBB企业5我想把这个表变成如下格式:类别名称AAA企业1,企业2,企业3BBB企业4,企业5一开始挺头疼的(会了的肯定没有这种感觉,不会那必须是头疼啊(*^__^*)),从网上找了点资料,算是找到一种比较简单方便的方法吧,现在大体总结一下,供大家共同学习。原先的表名为Table_A,实现代码如下:select类别,名称=(stuff((select','+名称fromTable_Awhere类别=A.类别forxmlpath('')),1,1,''))fromTable_AasAgroupby类别这里使用了SQLServer2005版本以后加入的stuff以及forxmlpath,先说下在上面这句sql中的作用,然后再详细的说明一下这两个的用法...
数据库操作教程 2022-09-23 17:38:45 -
sqlserver中存储过程的递归调用示例
递归式指代码片段调用自身的情况;危险之处在于:如果调用了自身一次,那么如何防止他反复地调用自身。也就是说提供递归检验来保证适当的时候可以跳出...
数据库操作教程 2022-09-23 17:38:39 -
SQL语句实现查询SQLServer服务器名称和IP地址
获取服务器名称:SELECTSERVERPROPERTY('MachineName')select@@SERVERNAMEselectHOST_NAME()获取IP地址可以使用xp_cmdshell执行ipconfig命令:--开启xp_cmdshellexecsp_configure'showadvancedoptions',1reconfigurewithoverrideexecsp_configure'xp_cmdshell',1reconfigurewithoverrideexecsp_configure'showadvancedoptions',0reconfigurewithoverridegobegindeclare@iplinevarchar(200)declare@posintdeclare@ipvarchar(40)setnocountonset@ip=nullifobject_id('tempdb....
数据库操作教程 2022-09-23 17:38:36