我在 SQL Server 中有一个表值函数,我同事的某个人意外地更改了它。如何轻松恢复以前的版本?有什么办法可以找到以前的版本吗?
我正在尝试计算特定日期/时间之间当前字段和前一个字段之间差异的平均值。目前我有一个显示这个的查询,但我不确定我现在如何过滤它,以便我可以获得特定日期/时间之间“差异”列的平均值。(提前为我的 sql 技能或缺乏道歉。)
SELECT
S.Pair,
S.Date,
S.Time,
S.Bid,
S.Time,
ABS(S.Bid - T.Bid) as 'Diff'
FROM
dbo.Data as S
CROSS APPLY
(
SELECT TOP 1 T.Bid
FROM
dbo.Data as T
WHERE
T.Id > S.Id
) as T
Run Code Online (Sandbox Code Playgroud)
任何指针将不胜感激。
编辑:
我想知道datetimeSQL Server 2008R2 中列表的聚集索引(非唯一)中的最大行数是多少。
我们将数据库 (D1) 作为主数据库,并将日志传送设置到名为 (LS_D1) 的辅助数据库。现在我们正在做的是备份 D1 数据库并在 D2 数据库上恢复它。我们对 D2 数据库的新版本部署进行架构和数据更改。
我们想要的是在 D1 数据库上恢复 D2 数据库,并在不复制备份文件的情况下恢复日志传送到 LS_D1 数据库。将备份文件从主数据中心复制到 DR 数据中心会为每个版本花费我们太多的钱,这就是我们想要恢复日志传送的原因。
当我尝试这样做时,LSN 号码不同步,有什么办法可以解决这个问题吗?或者我们可以有任何其他替代日志传送的方法来为我们提供 DR 功能并解决这个问题?
注意:任何可能需要一次性日志传送成本的解决方案也可以。
谢谢,皮尤什帕特尔
我设法使用存储过程创建了一个带有变量名的表的副本。但是我很难理解如何将约束合并到存储过程中。
问题:约束必须是一个变量,因为当它复制一个表时,它不能命名我拥有的与以前使用的相同的 PK。我在这些领域遇到语法错误。
我对 SQL Server 非常陌生......今天才刚刚开始学习!!所以请用虚拟术语解释。
到目前为止的代码如下:
CREATE PROCEDURE procFinancialPeriodTable
(@TABLENAME as varchar (50))
AS
DECLARE @SQL varchar(2000)
--SET @SQL = "if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[@TABLENAME]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
--drop table [dbo].[@TABLENAME]
BEGIN
SELECT @SQL = 'CREATE TABLE ' + @TABLENAME + '('
SELECT @SQL = @SQL + '[ID] [int] IDENTITY(1,1) NOT NULL,[FinPeriodNr] [int] NOT NULL,[FinCurrentPeriod] [bit] NULL,[FinStart] [date] NULL,[FinEnd] [date] NULL,[FinStatusOpen] [bit] NOT NULL,[PeriodClosedTS] [smalldatetime] NULL,[PeriodClosedUID] [varchar](3) NULL,)'
CONSTRAINT [PK_FinancialPeriod' + …Run Code Online (Sandbox Code Playgroud) 我需要索引我的数据库,但我需要在索引时查询它,这可能需要很长时间,我可以这样做吗?
index sql-server-2008 sql-server full-text-search sql-server-2008-r2
我无法将备份从 64 位实例恢复到 32 位实例。
源服务器:
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64)
Run Code Online (Sandbox Code Playgroud)
目标服务器:
Microsoft SQL Server 2008 (SP2) - 10.0.4064.0 (Intel X86)
Run Code Online (Sandbox Code Playgroud)
恢复时出错:
服务器“servername”
的还原失败数据库已备份在运行版本 10.50.2500 的服务器上。该版本与运行版本 10.00.4064 的服务器不兼容。在支持备份的服务器上还原数据库,或者使用与此服务器兼容的备份。
我想知道是否有一个表可以保存每个用户或每个系统对表的访问。
我同时使用 SQL Server 2005 和 2008。
我的一个客户在 SQL Server 2008 Express 上达到了 4GB 的数据库限制。作为测试,我在另一台机器上安装了 R2 版本并恢复了数据库的备份。
我想升级实际的服务器本身,尽管我担心除了损害系统稳定性之外还有什么陷阱/后果。
这是因为,这台机器上正在运行其他关键应用程序(包括我不完全了解的 ERP),这需要致电另一家公司重新安装/设置。
我给了客户 3 个选项:
我还考虑过使用 clonzilla (ghost) 等克隆整台计算机,但由于我是远程支持,这需要我旅行约 500 公里。
此外,这是一个严重的问题,因为他们无法向该数据库添加新记录。
我已经成功地FTS在我们存储药物名称的列上创建了一个索引,例如:
Amoxicillin 250mg capsules 21 capsule
Verapamil 160mg tablets 100 tablet
Run Code Online (Sandbox Code Playgroud)
当我搜索参数 Amoxicillin 或tablets它工作正常。
但是当我搜索'%Amoxi%'或blets它没有想出答案时。但是,相同的关键字与Like运算符一起使用。
select * from AMPP as a
WHERE Contains(A.[NM] ,'%Amoxici%')
Run Code Online (Sandbox Code Playgroud)
以上查询没有结果。但是下面的查询在结果中返回 140 行。
select * from AMPP as a
WHERE Contains(A.[NM] ,'%Amoxicillin%')
select * from AMPP as a
WHERE a.nm like '%Amoxici%'
Run Code Online (Sandbox Code Playgroud)