-
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如何通过SQL语句获取处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统相关信息
在SQLSERVER中如何通过SQL语句获取服务器硬件和系统信息呢?下面介绍一下如何通过SQL语句获取处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统相关信息。如有不足和遗漏,敬请补充...
数据库操作教程 2022-09-23 17:37:39 -
SQLSERVER使用ODBC驱动建立的链接服务器调用存储过程时参数不能为NULL值
我们知道SQLSERVER建立链接服务器(LinkedServer)可以选择的驱动程序非常多,最近发现使用ODBC的MicrosoftOLEDB驱动程序建立的链接服务器(LinkedServer),调用存储过程过程时,参数不能为NULL值。否则就会报下面错误提示:对应的英文错误提示为:EXECxxx.xxx.dbo.Usp_TestNULL,NULL,'ALL'Msg7213,Level16,State1,Line1Theattemptbytheprovidertopassremotestoredprocedureparameterstoremoteserver'xxx'failed.Verifythatthenumberofparameters,theorder,andthevaluespassedarecorrect.对应的中文错误提示为:EXECxxx.xxx.dbo.Usp_TestNULL,NULL,'ALL'Msg7213,Level16,State1,Line1提供程序将远程存储过程参数传递给远程服务器'xxx'的尝试失败...
数据库操作教程 2022-09-23 17:35:04 -
在SQLServer中使用ISNULL执行空值判断查询
有如下查询:复制代码代码如下:selectisnull(lastchanged,'')aslastchangedfromvhhostlistwheres_comment='test202'本来,ISNULL函数只有一个参数,它表示的含义就是判断这个参数的值是否为NULL,是NULL则返回TRUE,否则返回FALSE;但是,在SQLServer的查询语句中,isnull需要两个参数,它的含义是如果参数1为NULL,则以参数2为isnull函数的返回值;即,上面查询的的含义是,查询vhhostlist表中s_comment='test202'那一行lastchanged字段的值,如果它为NULL,则返回一个空字符串;记得以前不懂这个的时候,遇到这样一个情况:一张订单表,其中一个字段是status,订单提交上来时status为NULL。在程序里要做如下判断,当它为NULL时,显示一个审核的超链接;当它不为空时,显示一个字符串:已审...
数据库操作教程 2022-09-23 17:34:48 -
sql2000报错Successfullyre-openedthelocaleventlog解决方法
报错1:Unabletoreadlocaleventlog(reason:事件日志文件已在读取间更改。报错2:Successfullyre-openedthelocaleventlog-NOTE:Someeventsmayhavebeenmissed.微软解释:http://support.microsoft.com/default.aspx?scid=kb;en-us;811484解决办法:如果要防止错误日志,中出现这些消息可以使用跟踪标志2505作为启动参数要将跟踪标志2505作为SQLServer启动参数,使用以下步骤:1.企业管理器,右键单击服务器名称,依次属性...
数据库操作教程 2022-09-23 17:34:47 -
sqlserverisnull在数据库查询中的应用
isnull在数据库查询中的应用,特别是再语句连接的时候需要用到比如连接时候,某个字段没有值但是又要左连接到其他表上就会显示空,isnull可以判断是否是NULL,如果是给个默认值isnull("字段名","默认的数据")SqlServer中的null值与IsNull函数NULL值的三大特点,分别是:1)NULL值不参加统计;2)NULL值不进入计算表达式;3)不能与其它值进行比较。所谓NULL值不参加统计即在使用统计函数时,凡是涉及到NULL值的都会被忽视掉(用词可能不准确),不要以为这不重要,其实在某些地方这是很重要的...
数据库操作教程 2022-09-23 17:32:42 -
如何查看SQLSERVER中某个查询用了多少TempDB空间
在SQLServer中,TempDB主要负责供下述三类情况使用:内部使用(排序、hashjoin、worktable等)外部使用(临时表,表变量等)行版本控制(乐观并发控制) 而对于内部使用,一些比较复杂的查询中由于涉及到了大量的并行、排序等操作时就需要大量的内存空间,每一个查询在开始时都会由SQLServer预估需要多少内存,在具体的执行过程中,如果授予的内存不足,则需要将多出来的部分由TempDB处理,这也就是所谓的SpilltoTempDB。 通过下述语句可以观察到某个查询对TempDB造成了多少读写:DECLARE@readBIGINT,@writeBIGINT;SELECT@read=SUM(num_of_bytes_read),@write=SUM(num_of_bytes_written)FROMtempdb.sys.database_filesASDBFJOINsys.dm_io_virtual_file_stats(2,NULL)ASFSONFS.fil...
数据库操作教程 2022-09-23 17:31:48 -
SqlServer提示“列前缀tempdb.无效:未指定表名”问题解决方案
在查询凭证、审核凭证时出现“列前缀tempdb.无效:未指定表名”的错误提示,怎么解决?原因:是因为SQL2000无法识别计算机名称中”-”、”、”以及中文字等特殊字符,只能使用英文字母及数字。解决:右键我的电脑“属性”中“计算机名”点击修改,改为纯英文(最好8位以内),切记计算机名不能带“、-”等字符...
数据库操作教程 2022-09-23 17:30:10 -
sp_executesql使用复杂的Unicode表达式错误的解决方法
Msg102,Level15,State1,Line3Incorrectsyntaxnear'+'.当你尝试执行下面这段代码时,会得到如上这个错误提示。复制代码代码如下:DECLARE@MyNameNVARCHAR(100)DECLARE@FieldNameSYSNAME=N'Name'EXECUTEsp_executesqlN'SELECTTOP1@OutputName=['+@FieldName+']FROM[dbo].[Member]',N'@OutputNameNVARCHAR(100)OUTPUT',@MyNameOUTPUT;SELECT@MyName问题出于不允许使用更复杂的Unicode表达式(例如使用+运算符连接两个字符串)...
数据库操作教程 2022-09-23 17:28:34 -
SqlServer数据库提示“tempdb”的日志已满问题解决方案
执行sql语句,中间没有用到临时表提示服务器:消息9002,级别17,状态2,行1数据库'tempdb'的日志已满。请备份该数据库的事务日志以释放一些日志空间...
数据库操作教程 2022-09-23 17:26:27 -
解决无法在unicode和非unicode字符串数据类型之间转换的方法详解
今天用excel导入数据又遇到了…… 错误0xc02020f6:数据流任务:列“column”无法在unicode和非unicode字符串数据类型之间转换。 原因:仔细看了一下,发现有些字段是varchar的,而excel中估计都是nvarchar类型...
数据库操作教程 2022-09-23 17:26:22 -
浅谈tempdb在SqlServer系统中的重要作用
简介: tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象。可以简单理解tempdb是SQLServer的速写板...
数据库操作教程 2022-09-23 17:26:10