昨晚,我在 SQL Server 管理中对数据库进行了完整备份,当我恢复数据库而不是完整时,它丢失了过去几个月的所有数据。
完整备份是昨晚进行的,发布时间为 - 07/05/2014 16:54 但是表中的信息已恢复至 24/02/2014
任何帮助将不胜感激 -
我正在 Windows 7 32 位上使用 SQL Server 2012 Enterprise Edition SP2。
\n\n我在存储过程中有这段代码。
\n\nBegin try\n -- EXEC CLR Stored Procedure\n exec dbo.MyStoredProcedureCLR @baseUrl, @orderNumber\nend try\nbegin catch\n Declare @message nvarchar(max);\n\n set @message = ERROR_MESSAGE()\n EXEC master..xp_logevent 60000, @message, informational\nend catch\nRun Code Online (Sandbox Code Playgroud)\n\nMyStoredProcedureCLR是一个 SQL CLR 存储过程,用于对 RESTful Web 服务进行 PUT。
有时,我会遇到404 Not Found异常,我想捕获它并记录它。这是我收到的消息:
A .NET Framework error occurred during execution of user-defined routine or aggregate "GetNewCodesICODECLR": \nSystem.Net.WebException: Error en el servidor remoto: (404) No se encontr\xc3\xb3.\nSystem.Net.WebException: …Run Code Online (Sandbox Code Playgroud) 我可以澄清这个设置链接服务器是使用登录名的当前安全上下文进行的吗?如果我使用 Windows 帐户 JOESmith 连接到 serverA 并使用上面的选项创建链接服务器到 serverB。
当 BOBSmith 连接到服务器 A 并查询服务器 B 时会发生什么。它使用 JOESmith 凭证还是 BOBSmith?
抱歉,如果这听起来像一个愚蠢的问题,因为“当前安全上下文”应该意味着它将使用 BOBSmith 的帐户到 serverB
但我只是想澄清一下
使用 SQL Server 2014,我有这个:
Table1
Tab1_id int identity(1,1) primary key
Tab1_val1 smallint
Tab1_val2 smallint
Tab1_valInfo varchar(10) -- not yet implemented, will be used only for presentation
Run Code Online (Sandbox Code Playgroud)
Tab1_id | Tab1_val1 | Tab1_val2 | Tab1_valInfo
---------|-------------|-------------|--------------
1 | 25 | 19 | 0025-0019
2 | 0 | 5 | 0000-0005
3 | 12 | 3 | 0012-0003
Run Code Online (Sandbox Code Playgroud)
现在,凭借我相当短的 SQL 经验,我正在尝试的是:
在应用程序中,插入数据所需的唯一输入值是Tab1_val1和Tab1_val2,然后创建一个更新列的触发器Tab1_valInfo。
create trigger utr_ValInfo on Table1
after insert as
begin
declare @size int = 4;
declare …Run Code Online (Sandbox Code Playgroud) 如何在 SQL Server 中将时间戳/行版本转换为日期和时间?
我有几个表,我想在其中跟踪上次更新,列名称如ModifiedAt, UpdatedAt, UpdatedDate。
如果它们使用 Rowversion 数据类型或 Timestamp 数据类型,这可能吗?
如
CREATE TABLE dbo.Customer (
CustomerID BIGINT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
CustomerName NVARCHAR(200) NOT NULL ,
CreatedAt DATETIME2 NOT NULL CONSTRAINT df_Customer_CreatedAt DEFAULT GETUTCDATE(),
UpdatedAt ROWVERSION NOT NULL /* does this work ? */
)
Run Code Online (Sandbox Code Playgroud) 我正在考虑在实时 SQL Server 空间表上创建一个触发器,当用户执行以下任一操作时,该触发器将更新列:
不幸的是,我只能在创建新功能时更新列,或在更改几何列时更新列,但不能在一个触发器中同时更新这两者。
理想世界 - 属性Updated填充已创建或修改的特定功能的当前日期。
到目前为止,这是我所拥有的仅在创建新功能时才有效的方法:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER *[triggername]* ON *[table]*
AFTER INSERT,UPDATE
AS BEGIN
DECLARE @ID VARCHAR(8)
SELECT @ID = [ID] FROM *[table]*
UPDATE *[table]*
SET Updated = GETDATE()
WHERE [ID] = @ID
END
GO
Run Code Online (Sandbox Code Playgroud)
当几何体改变时这有效
CREATE TRIGGER [triggername] ON [table]
FOR INSERT, UPDATE
AS BEGIN
UPDATE [table]
SET [table].Updated = Getdate()
FROM [table]
INNER JOIN deleted d ON [table].id = d.id …Run Code Online (Sandbox Code Playgroud) 注意到 SQL Server 2016 CTP2 的文档声明“默认情况下,安装程序添加与 CPU 数量或 8 一样多的 tempdb 文件,以较低者为准”。 https://msdn.microsoft.com/en-us/library/bb510411(v=sql.130).aspx
但我一直认为“正确”的比例应该是 CPU 核心数量的一半,对于 8 核心以下的机器来说。
这是否应该被视为微软的官方建议,甚至适用于2012/2014年?
当我使用SELECT INTO A和它创建一个表时ORDER BY x,SQL Server 是否会自动将 x 作为主键A(从而自动创建聚集索引)?
我有一个表,其中有唯一的 ID、姓名、电子邮件和其他一些字段。我想将此表与电子邮件上的另一个表进行匹配,但有时电子邮件是共享的。唯一的ID不在表之间共享,但是当我识别它们时,我会将ID输入到另一个表中。名称并不唯一。
我想建立两轮连接。第一轮我想匹配电子邮件并附加 ID,第二轮将匹配 ID 并根据需要更新字段。
有没有办法查询表并仅获取那些具有唯一电子邮件的数据,而忽略那些共享电子邮件的数据?然后,我可以附加 ID 并重新查询那些没有 ID 的内容并加入名称。这还能用吗?
这是分区的一个很好的用途吗?我不太明白这些。
我可以在我的服务器上运行删除语句,但是每当我where向删除语句添加子句时,它都会引发以下错误:
消息 10054,级别 20,状态 0,第 0 行
向服务器发送请求时发生传输级错误。(提供程序:TCP 提供程序,错误:0 - 现有连接被远程主机强制关闭。)
此语法引发错误 ->
DELETE
FROM sys.views
WHERE sys.views.name LIKE '%DoNotNeed_%'
Run Code Online (Sandbox Code Playgroud)
为了删除所有以“不需要”开头的视图,我是否设置不正确?
sql-server ×10
duplication ×1
logs ×1
spatial ×1
sql-clr ×1
t-sql ×1
tempdb ×1
timestamp ×1
trigger ×1
update ×1