我使用以下SQL将一个表中的多个数据库列连接到结果集中的一列中: SELECT (field1 + '' + field2 + '' + field3) FROM table1 当其中一个字段为空时,我得到了整个连接expression式的空结果。 我怎样才能克服呢? 数据库是MS SQL Server 2008.顺便说一下,这是连接数据库列的最好方法吗? 有没有标准的SQL这样做?
我只是通过SSMSdevise器将数据添加到现有的包含数据的表中,表更新正常,我可以成功地运行一个select查询,但是查询完成后,我注意到新列以红色下划线,出现错误表明这是一个无效的列名称。 为什么会发生? 我希望查询失败,如果列是无效的。 SSMS是否保留了某些必须被刷新的旧表的内部引用? 我试图closures数据库连接并重新打开它,但仍然是相同的错误。 不知道我在这里错过了什么。 SELECT TOP 100 [PRIMARY_NDX_Col1], [NEW_Col], –QUERY EXECUTES SUCCESSFULLY, BUT THIS IS UNDERLINED RED AS AN INVALID COLUMN [Col3] FROM [dbo].[MyTable]
我有一个.bak文件,我想用这个文件重新创buildSQL Server 2008 Management Studio的全新安装数据库。 有人能指出我如何做到这一点,在正确的方向吗? 我努力了: 右键单击对象资源pipe理器中的数据库容器 从上下文菜单中selectRestore database 指定为数据库作为新的或现有的数据库 从设备指定恢复源 select备份媒体作为文件 单击添加button并浏览到BAK文件的位置 但我得到的错误 服务器'MyServer-PC'恢复失败。 (Microsoft.SqlServer.SmoExtended) 附加信息: System.Data.SqlClient.SqlError:备份集保存了现有“发明”数据库以外的数据库的备份。 (Microsoft.SqlServer.Smo)
我试图从varchar字段只采取最后四个字符。 所有的行都是不同的长度。 我应该用什么函数来实现这个function? 编辑:好吧,这是令人尴尬的容易..似乎我有一种方式去我的知识!
我有一个由数据库和多个服务组成的应用程序。 其中一个服务将信息添加到数据库(由用户触发)。 另一个服务定期查询数据库的变化,并使用新的数据作为input进行处理。 到现在为止,我使用了一个可configuration的计时器,每30秒左右查询数据库。 我阅读了关于更改通知的Sql 2005。 但是,在Sql 2008中,这个特性已经被弃用了。 直接在代码中获取数据库中发生的更改的最佳方式是什么? 什么是最佳实践?
我一直在阅读很多关于如何从.bak文件恢复SQL Server中的数据库的谷歌职位和StackOverflow问题。 但是他们都没有说明如何只读取数据库备份中的表。 (我还能find什么?) 我只想查看一些现在已经被删除的旧信息,而没有实际恢复完整的数据库。 这可能吗? 。 编辑: 我只想把我的T-SQL解决scheme发布到这个问题上,所以其他人可能会使用它,我可以回去查看它;) 首先,我创build了一个名为backup_lookup的新数据库,并使其脱机。 之后,我可以恢复我的旧数据库mydb到新的,没有触摸我的原始。 USE master GO RESTORE DATABASE backup_lookup FROM DISK = 'D:\backup\mydb.bak' WITH REPLACE, MOVE 'mydb' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup.mdf', MOVE 'mydb_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup_log.ldf' GO 我希望这有帮助 :)
我的数据库中有一个名为“dob”的datetimetypes的列。 如何在SQL Server 2005中的特定DoB之后select所有行?
我一直在试图find一些关于如何select一个不包含在SQL中的Group By语句中的非聚合列的信息,但是到目前为止我没有发现任何东西似乎回答了我的问题。 我有一张桌子,里面有三个我想要的东西。 一个是创builddate,一个是通过特定的Claim ID对logging进行分组的ID,最后是PK。 我想查找每组索赔ID中具有最大创builddate的logging。 我selectMAX(创builddate)和Claim ID(cpe.fmgcms_cpeclaimid),并按照Claim ID进行分组。 但我需要从这些logging(cpe.fmgcms_claimid)的PK,如果我尝试将它添加到我的select子句,我得到一个错误。 而且我不能把它加到我的小组中,因为那样它就会抛弃我想要的分组。 有没有人知道这个解决方法? 这是我的代码示例: Select MAX(cpe.createdon) As MaxDate, cpe.fmgcms_cpeclaimid from Filteredfmgcms_claimpaymentestimate cpe where cpe.createdon < 'reportstartdate' group by cpe.fmgcms_cpeclaimid 这是我想要得到的结果: Select MAX(cpe.createdon) As MaxDate, cpe.fmgcms_cpeclaimid, cpe.fmgcms_claimid from Filteredfmgcms_claimpaymentestimate cpe where cpe.createdon < 'reportstartdate' group by cpe.fmgcms_cpeclaimid
我正在运行一个ASP.NET Web Pages页面,它在初始化负载时从SQL服务器中抽取一个项目列表。 这个查询运行在一秒钟左右,并在2秒内加载页面。 回报大概是1000条logging, 我从Service Manager SQL数据库中提取主机名以及一些其他信息。 在这个页面中,我有一个内置的search,本质上运行完全相同的查询,但是使用基于主机名的LIKE运行它。 这将加载与包含部分search查询的所有主机名相同的页面。 查询一般在SQLpipe理工作室内运行一秒钟,但加载页面需要相当长的时间,有时会超时。 我的问题是,为什么基于参数的search需要更长的时间,有时超时没有明显的原因。 是否有任何措施可以缓解这种超时? 以下是完整的错误。 “/”应用程序中的服务器错误。 The wait operation timed out 说明:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪,了解有关错误的更多信息以及源代码的位置。 exception详情: System.ComponentModel.Win32Exception: The wait operation timed out Source Error: Line 13: } Line 14: Line 15: var selectedData = db.Query(selectCommand, searchTerm); Line 16: Line 17: Source File: c:\Users\u0149920\Documents\My Web Sites\AppSupport\servers\default.cshtml Line: 15 堆栈跟踪: […]
前段时间,当我向SQL Server数据库执行一些批量数据插入时,我禁用了许多索引来提高插入性能。 我现在需要回去重build/重新启用它们。 不幸的是,我不确定我禁用了哪些索引。 有没有一种方法可以查询,以确定哪些索引被禁用,应该重新启用?