-
SQLReportBuilder报表里面的常见问题分析
一SQL报表常常会遇到在表格中的相除,如果分母为零,一般会显示错误号,我们可以这么处理:(加上是A/B)=A/iif(B=0,99999999999999,B)但是我们不能这么写:=iif(B=0,0,A/B) //我们不能这么写,会产生BUG,至于什么BUG,你们可以自己试试二我们假设报表中的某一个格子的名字为A,我们在A中需要引用另一个格子B的值,在这种情况下,我们通常会把B中的计算公式再次引用在A中复制一遍,这样很导致很麻烦。我们可以在A中直接这么写:ReportItems!B表的名字.Value这样就不需要再一次得把公式写一遍了三在报表曲线图中的横坐标,倘若我们需要动态得变化横坐标,我们这时候一般会把轴选项设置为自动,但是这样往往得不到我们想要的结果,下面的例子就是根据参数(开始时间和结束时间)的间隔动态地改变横坐标的样式水平轴属性》数字》自定义=IIf(Parameters!startime.Value=Parameters!endtime.Value,"",iif(DateAdd(DateInterval.day,-4,Parameters!endtime.Val...
数据库操作教程 2022-09-23 17:49:15 -
SQLSERVER将XML变量转为JSON文本
废话不多说了,直接给大家贴代码了。--createfunctioncreatefunction[dbo].[fnXmlToJson](@XmlDataxml)returnsnvarchar(max)asbeginreturn(selectstuff((select*from(select',{'+stuff((select',"'+coalesce(b.c.value('local-name(.)','NVARCHAR(MAX)'),'')+'":"'+b.c.value('text()[]','NVARCHAR(MAX)')+'"'fromx.a.nodes('*')b(c)forxmlpath(''),type).value('(./text())[]','NVARCHAR(MAX)'),,,'')+'}'[email protected]('/root/*')x(a))JSON(theLine)forxmlpath(''),type).value('.','NVARCHAR(MAX)'),,,''));end;go--testtableanddatacreatetable[db...
数据库操作教程 2022-09-23 17:45:31 -
将表里的数据批量生成INSERT语句的存储过程增强版
有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中目前SQLServer里面是没有相关的工具根据查询条件来生成INSERT语句的,只有借助第三方工具(thirdpartytools)这种脚本网上也有很多,但是网上的脚本还是欠缺一些规范和功能,例如:我只想导出特定查询条件的数据,网上的脚本都是导出全表数据如果表很大,对性能会有很大影响这里有一个存储过程(适用于SQLServer2005或以上版本)--Author:<桦仔>--Blog:<http://www.cnblogs.com/lyhabc/>--Createdate:<//>--Description:<根据查询条件导出表数据的insert脚本>--=============================================CREATEPROCEDUREInsertGenerator(@tableNameNVARCHAR(MAX),@whereClauseNVARCHAR(MAX))AS--Thenitincludesacursort...
数据库操作教程 2022-09-23 17:44:23 -
SqlServer中查看当前Open的Cursor方法
遇到错误:Acursorwiththename''alreadyexists,想要看是什么代码导致的。找到下面几种方法.--测试声明Cursor并且打开DECLAREvend_cursorCURSORFORSELECT*FROMPurchasing.VendorOPENvend_cursorFETCHNEXTFROMvend_cursor;--使用下面的三种方法都可以SELECTec.session_id,ec.name,ec.properties,ec.creation_time,ec.is_open,ec.writes,ec.reads,t.textFROMsys.dm_exec_cursors(0)ecCROSSAPPLYsys.dm_exec_sql_text(ec.sql_handle)tdbccactivecursors(0)SELECT*FROMMASTER..SYSCURSORS结果:...
数据库操作教程 2022-09-23 17:44:11 -
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 -
巧妙利用PARTITION分组排名递增特性解决合并连续相同数据行
问题提出先造一些测试数据以说明题目:DECLARE@TestDataTABLE(IDINT,Col1VARCHAR(20),Col2VARCHAR(20))INSERTINTO@TestData(ID,Col1,Col2)SELECT1,'New','Approved'UNIONALLSELECT2,'Approved','Commited'UNIONALLSELECT3,'Commited','InProgress'UNIONALLSELECT4,'New','Approved'UNIONALLSELECT5,'New','Approved'UNIONALLSELECT6,'New','Approved'UNIONALLSELECT7,'Approved','Removed'SELECT*FROM@TestData数据说明,ID列连续自增...
数据库操作教程 2022-09-23 17:40:18 -
SqlServer使用cursor处理重复数据过程详解
/*************************************************************Codeformattedbysetyg*Time:2014/7/2910:04:44************************************************************/CREATEPROCHandleEmailRepeatASDECLAREemailCURSORFORSELECTe.email,e...
数据库操作教程 2022-09-23 17:37:54 -
SQLServer中PartitionBy及row_number函数使用详解
partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组。今天群里看到一个问题,在这里概述下:查询出不同分类下的最新记录...
数据库操作教程 2022-09-23 17:37:26 -
人工智能自动sql优化工具--SQLTuningforSQLServer
针对这种情况,人工智能自动SQL优化工具应运而生。现在我就向大家介绍这样一款工具:SQLTuningforSQLServer...
数据库操作教程 2022-09-23 17:36:35 -
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