标签: sql-server

使用 bak 文件恢复数据库 - 诉诸旧日期?

昨晚,我在 SQL Server 管理中对数据库进行了完整备份,当我恢复数据库而不是完整时,它丢失了过去几个月的所有数据。

完整备份是昨晚进行的,发布时间为 - 07/05/2014 16:54 但是表中的信息已恢复至 24/02/2014

任何帮助将不胜感激 -

sql-server

1
推荐指数
1
解决办法
331
查看次数

xp_logevent 参数类型无效

我正在 Windows 7 32 位上使用 SQL Server 2012 Enterprise Edition SP2。

\n\n

我在存储过程中有这段代码。

\n\n
Begin 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\n
Run Code Online (Sandbox Code Playgroud)\n\n

MyStoredProcedureCLR是一个 SQL CLR 存储过程,用于对 RESTful Web 服务进行 PUT。

\n\n

有时,我会遇到404 Not Found异常,我想捕获它并记录它。这是我收到的消息:

\n\n
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)

sql-server logs sql-clr

1
推荐指数
1
解决办法
1270
查看次数

使用登录名的当前安全上下文创建链接服务器

我可以澄清这个设置链接服务器是使用登录名的当前安全上下文进行的吗?如果我使用 Windows 帐户 JOESmith 连接到 serverA 并使用上面的选项创建链接服务器到 serverB。

当 BOBSmith 连接到服务器 A 并查询服务器 B 时会发生什么。它使用 JOESmith 凭证还是 BOBSmith?

抱歉,如果这听起来像一个愚蠢的问题,因为“当前安全上下文”应该意味着它将使用 BOBSmith 的帐户到 serverB

但我只是想澄清一下

sql-server

1
推荐指数
1
解决办法
1万
查看次数

如何使用触发器中新插入的同一行的值更新列?

使用 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_val1Tab1_val2,然后创建一个更新列的触发器Tab1_valInfo

create trigger utr_ValInfo on Table1
after insert as
begin

    declare @size int = 4;

    declare …
Run Code Online (Sandbox Code Playgroud)

trigger sql-server update sql-server-2014

1
推荐指数
1
解决办法
2万
查看次数

如何在 SQL Server 中将时间戳/行版本转换为日期和时间?

如何在 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 timestamp

1
推荐指数
1
解决办法
2万
查看次数

插入或更新 SQL Server(空间)时的触发器

我正在考虑在实时 SQL Server 空间表上创建一个触发器,当用户执行以下任一操作时,该触发器将更新列:

  1. 创建一个新功能
  2. 更新 GIS 应用程序中要素的几何形状

不幸的是,我只能在创建新功能时更新列,或在更改几何列时更新列,但不能在一个触发器中同时更新这两者。

理想世界 - 属性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 spatial

1
推荐指数
1
解决办法
3208
查看次数

SQL Server 2016中TempDB默认文件数

注意到 SQL Server 2016 CTP2 的文档声明“默认情况下,安装程序添加与 CPU 数量或 8 一样多的 tempdb 文件,以较低者为准”。 https://msdn.microsoft.com/en-us/library/bb510411(v=sql.130).aspx

但我一直认为“正确”的比例应该是 CPU 核心数量的一半,对于 8 核心以下的机器来说。

这是否应该被视为微软的官方建议,甚至适用于2012/2014年?

sql-server configuration tempdb sql-server-2016

1
推荐指数
1
解决办法
6316
查看次数

SQL SERVER 2014 - SELECT INTO、ORDER BY - 自动聚集索引?

当我使用SELECT INTO A和它创建一个表时ORDER BY x,SQL Server 是否会自动将 x 作为主键A(从而自动创建聚集索引)?

sql-server

1
推荐指数
1
解决办法
1971
查看次数

排除所有匹配的行

我有一个表,其中有唯一的 ID、姓名、电子邮件和其他一些字段。我想将此表与电子邮件上的另一个表进行匹配,但有时电子邮件是共享的。唯一的ID不在表之间共享,但是当我识别它们时,我会将ID输入到另一个表中。名称并不唯一。

我想建立两轮连接。第一轮我想匹配电子邮件并附加 ID,第二轮将匹配 ID 并根据需要更新字段。

有没有办法查询表并仅获取那些具有唯一电子邮件的数据,而忽略那些共享电子邮件的数据?然后,我可以附加 ID 并重新查询那些没有 ID 的内容并加入名称。这还能用吗?

这是分区的一个很好的用途吗?我不太明白这些。

sql-server duplication

1
推荐指数
1
解决办法
2711
查看次数

使用通配符从 sys.views 中删除

我可以在我的服务器上运行删除语句,但是每当我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 t-sql sql-server-2008-r2

1
推荐指数
1
解决办法
1254
查看次数