标签: sql-server-2014

如何在 Sql Server 代理中设置年度作业

我想向表的 2 列添加 12 个学分。我想每 6 个月做一次。但是作业计划属性中似乎没有这样的选项。

另外,如果我想向管理员显示贷记和借记的日志,工作说明应该是什么。更好地解释在:

编辑: 解决了一半的问题,这是另一半。

应该向管理员显示每个用户帐户中发生的休假的贷记和借记记录,例如日志。我如何在网格视图或表格中或以任何方式显示它?例如,当管理员登录并选择一个员工姓名来查看他们的休假资产负债表时,它应该如下所示

在此处输入图片说明

现在,管理员应该能够在员工兑现休假时添加休假,方法是单击“贷记休假”按钮。此外,应显示年度日志,并在更改年份时显示该年度的日志。

请给我一些有关此服务器代理作业的步骤的想法。

c# t-sql asp.net sql-server-2014

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

在Sql server中将身份自动增加到特定数字

我有一个数据库,其中ID是bigint和自动递增的标识列.工作正常,但突然它上升并从特定数字开始? 在此输入图像描述

我想知道为什么会这样,我怎么能再次从152继续增加????

sql-server sql-server-2014

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

将OUTPUT inserted.id与所选行的值组合

运行SQL Server 2014.如何从表中插入多行并将插入的数据与新ID组合?

让我们看一个精简的例子吧!

DECLARE @Old TABLE 
(
    [ID] [int] PRIMARY KEY,
    [Data] [int] NOT NULL
)

DECLARE @New TABLE
(
    [ID] [int] PRIMARY KEY,
    [OtherID] [int] NULL
)

INSERT INTO [dbo].[Test] ([Data])
OUTPUT inserted.[ID], [@Old].[ID] /* <--- not supported :( */ INTO @New
SELECT [Data]
FROM @Old
Run Code Online (Sandbox Code Playgroud)

我需要将插入的ID与正在插入的数据相结合.我可以假设插入的行与所选行的顺序相同吗?([Data]插入操作后我将无法加入.)

更新

以下似乎是一个可能的解决方案,但我找不到它的工作原理.它保证有效吗?

DECLARE @Old TABLE 
(
    [RowID] [int] PRIMARY KEY IDENTITY, -- Guaranteed insert order?     
    [ID] [int] NOT NULL,
    [Data] [int] NOT NULL
)

DECLARE @New TABLE …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2014

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

SQL CLR标量函数缓存结果

一般问题

迁移到SQL Server 2014之后,执行之前为SQL Server 2008 R2中的每次执行产生不同结果的CLR标量函数,现在为每个后续调用生成相同的结果.

测试/插图

DECLARE @i int = 0;
WHILE @i < 10
 BEGIN
    print dbo.getEligLoadTXID();
    --> Simulate delay as this code never gets called more than once every few seconds in our environment
    WAITFOR DELAY '00:00:00.1';
    SET @i += 1;
 END;
Run Code Online (Sandbox Code Playgroud)

我们目前正在将环境从SQL Server 2008 R2升级到SQL Server 2014.我们遇到的一个问题是特定于CLR标量函数的执行.功能相对简单; 它正在根据刻度数生成一个内部ID(让我们不要争论这个函数的需要/目的).

在SQL Server 2008 R2环境中,在循环中执行函数会返回预期结果(每次执行都会产生新值).但是,在我们新的SQL Server 2014环境中进行测试时,相同的代码会为循环中的每次执行返回SAME值.

SQL Server 2008 R2中的结果:

20161213502167209995
20161213502168210095
20161213502169210195
20161213502170210295
20161213502171210395
20161213502172210495
20161213502173210595
20161213502174210695
20161213502175210795
20161213502176210895
Run Code Online (Sandbox Code Playgroud)

SQL Server 2014中的结果:

20161213502199924787
20161213502199924787
20161213502199924787
20161213502199924787 …
Run Code Online (Sandbox Code Playgroud)

sql-server sqlclr sql-server-2014

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

为什么sql不比较时间?

我比较这两次,如果它小于或大于彼此,但它没有.为什么?

 if(@OpeningTime < @ExpiryTime)
      Begin
            Raiserror('Opening time cannot be smaller than expiry time', 16,10);
            return
      End
Run Code Online (Sandbox Code Playgroud)

两者都是varchar(10)

时间过去就像早上10点和上午11点

sql t-sql sql-server sql-server-2014

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

执行批处理时发生错误.错误消息是:抛出了类型'System.OutOfMemoryException'的异常."

我有一个表(Sql server 2014),有6000万个数据.在获取我得到的数据时

"执行批处理时发生错误.错误信息是:抛出了类型'System.OutOfMemoryException'的异常."

任何人都可以帮忙吗?

sql-server sql-server-2014

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

尝试使用switch case语句获取单列数据

我试图根据下面的角色查询表格,但我收到这样的错误

'='附近的语法不正确.

我不知道为什么我会收到这个错误

下面是我的查询

CREATE procedure [dbo].[getName]            
    @AccountId int,    
    @role varchar(50),
    @Activated_By nvarchar(100)            
AS            
BEGIN           

    SELECT   Name 
    FROM     pass_activationinfo 
    WHERE 
        CASE WHEN @role = 'Admin'
             THEN account_id = @AccountId
             ELSE Activated_By = @Activated_By
        END
END
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2012 sql-server-2014

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

将多行合并为一个单行

我在桌子上有这样的东西

COUNTRY SCOPE1   SCOPE2 SCOPE3  SCOPE4  SCOPE5
UK          Y    NULL   NULL    NULL    NULL
UK      NULL          Y NULL    NULL    NULL
UK      NULL     NULL      Y    NULL    NULL
Run Code Online (Sandbox Code Playgroud)

我需要输出为单行

COUNTRY SCOPE1  SCOPE2  SCOPE3  SCOPE4  SCOPE5
UK          Y        Y       Y  NULL    NULL
Run Code Online (Sandbox Code Playgroud)

任何人都可以在MS SQL Server 2014中为此提供帮助吗?

sql t-sql sql-server sql-server-2014

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

当字段为数字时,转换为数字

我正在使用一个包含varchar的列的视图,该列可以具有类似8.60V或的值NULL.

我正在尝试创建一个select语句,在可能的情况下将值转换为数字,否则返回原始值.

所以我想出了这个测试查询:

SELECT 
CASE 
    WHEN ISNUMERIC('V') = 1
        THEN cast(round('V', 1) as numeric(4,1))
        ELSE 'V'
    END
    as Value;
Run Code Online (Sandbox Code Playgroud)

我希望它返回V,但我得到一个错误:Error converting data type varchar to numeric. 我试图玩弄TRY_PARSETRY_CAST,并与roundcast没有成功.错误似乎与THEN子句有关,因为没有,它不会抛出错误.

我该怎么写这个查询?

SQL版本: Microsoft SQL Server 2014(SP2-GDR)(KB4019093) - 12.0.5207.0(X64)

使用:Microsoft SQL Server Management Studio v12.0.2000.8

sql sql-server numbers sql-server-2014

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

SELECT COUNT(*)查询是否必须执行全表扫描?

获取表中所有行计数的查询是否必须执行全表扫描,或者SQL Server是否在某处保留了行数?

SELECT COUNT(*) FROM TABLE_NAME;
Run Code Online (Sandbox Code Playgroud)

该表TABLE_NAME有一个主键,因此是一个聚簇索引,如下所示:

CREATE TABLE TABLE_NAME
(
  Id int PRIMARY KEY IDENTITY(1, 1),
  Name nvarchar(50) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

我正在使用Microsoft SQL Server 2014.

database sql-server sql-server-2014

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