如何在SQL Server 2005中分页结果?
我在SQL Server 2000中尝试过,但没有可靠的方法来做到这一点.我现在想知道SQL Server 2005是否有任何内置方法?
我的意思是,例如,如果我按用户名列出用户,我希望能够只返回前10个记录,然后是接下来的10个记录,依此类推.
任何帮助将非常感激.
我们正在开展一个项目,我们将构建一个完整的后端CMS系统,该系统将通过一个软件包为整个外联网和内部网提供支持.我一直在试图寻找一个答案是哪一个更好的问题:存储数据库(SQL Server 2005中),所以我们可以有诚信,单个复制计划等或存放在文件系统上的图像?
我们遇到的一个问题是我们有多个服务器负载均衡,需要始终拥有相同的数据.截至目前,我们有SQL复制处理,但文件复制似乎有点困难.我们关注的另一个问题是我们希望拥有相同图像的多个分辨率,我们不确定在文件系统上创建和存储每个版本是最好的还是可以动态地拉动并创建我们想要的分辨率图像.
我们关注的是以下内容:
有没有人有类似的情况或对推荐的内容有任何意见?在此先感谢您的帮助!
我尝试使用以下查询还原数据库:
ALTER DATABASE [DatabaseName] SET Single_User WITH Rollback Immediate GO
RESTORE DATABASE DatabaseName FROM DISK = 'C:\DBName-Full Database Backup'
ALTER DATABASE [DatabaseName] SET Multi_User GO
Run Code Online (Sandbox Code Playgroud)
但我没有恢复数据库,而是收到此错误:
Msg 3159,Level 16,State 1,Line 2
数据库"DatabaseName"的日志尾部尚未备份.使用
BACKUP LOG WITH NORECOVERY它是否包含工作,你不想失去备份日志.使用 语句的WITH REPLACEorWITH STOPAT子句RESTORE只是覆盖日志的内容.消息3013,级别16,状态1,行2RESTORE DATABASE异常终止.
我有一个简单的选择语句.我想添加一个临时列,它将对结果集中的行进行编号.我试过这个 -
declare @num int
set @num = 0;
select t.A, t.B, t.C, (@count + 1) as number
from tableZ as t
Run Code Online (Sandbox Code Playgroud)
它将1分配给所有行.我试过@count = @count + 1但它没有用.我该如何以简单的方式做这件事?
谢谢.
我google了很多,但我没有找到一个例子的确切直接答案.
任何这方面的例子都会更有帮助.
sql sql-server sql-server-2005 sql-server-2008 sql-server-2012
在SQL Server Management Studio中运行以下查询会给出以下错误.
update table_name set is_active = 0 where id = 3
Run Code Online (Sandbox Code Playgroud)
当前命令发生严重错误.结果(如果有的话)应该被丢弃.
我已经在数据库中的其他几个表上尝试了相同的更新语句,它们工作正常.
DBCC CHECKTABLE('table_name');
Run Code Online (Sandbox Code Playgroud)
给
DBCC results for 'table_name'.
There are 13 rows in 1 pages for object "table_name".
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Run Code Online (Sandbox Code Playgroud) 我刚刚通过阅读同事编写的代码了解到SQL Server中存在新的"EXCEPT"子句(有点晚了,我知道......).这真让我惊讶!
但后来我对它的使用有一些疑问:什么时候建议使用它?使用它与使用"AND NOT EXISTS ..."的相关查询之间是否存在性能差异?
在阅读了BOL中的EXCEPT文章之后,我认为它只是第二个选项的简写,但是当我用它重写了几个查询时(因为他们对我更熟悉的"AND NOT EXISTS"语法)然后检查了,我感到很惊讶.执行计划 - 惊喜!EXCEPT版本的执行计划更短,执行速度也更快.总是这样吗?
所以我想知道:使用这个强大的工具的准则是什么?
我在SQL Server 2005中有一个包含多个变量的存储过程,我想使用select语句设置这些变量的值.所有三个变量都来自同一个表,应该有一种方法可以使用一个select语句来设置它们,而不是我现在拥有的方式,如下所示.请帮我搞清楚.
DECLARE @currentTerm nvarchar(max)
DECLARE @termID int
DECLARE @endDate datetime
SET @currentTerm =
(
Select CurrentTerm from table1 where IsCurrent = 1
)
SET @termID =
(
Select TermID from table1 where IsCurrent = 1
)
SET @endDate =
(
Select EndDate from table1 where IsCurrent = 1
)
Run Code Online (Sandbox Code Playgroud) 我想找到我创建的存储过程,并且我想在特定日期(例如2012年9月27日(2012年9月27日))找到我在SQL Server中修改的存储过程.
是否有任何查询将列出在此日期创建和修改的这些过程?
sql-server-2005 ×10
sql ×7
sql-server ×6
t-sql ×2
asp.net ×1
c# ×1
database ×1
date ×1
datetime ×1
paging ×1
performance ×1
select ×1
sharepoint ×1