标签: sql-server

在创建查询时需要帮助

我有一个包含以下数据的表格。

columnA  columnB
ONE      value 1
ONE      value 2
ONE      value 3
TWO      value 1
TWO      value 2
THREE    value 1
Run Code Online (Sandbox Code Playgroud)

需要帮助创建下面给出的查询

COLUMN X   COLUMN Y
ONE         value 1, value 2, value 3
TWO         value 1, value 2
THREE       value 1
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql

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

SQL Server COUNT() 似乎忽略了 WHERE

我正在尝试设置一个 SQL Server 查询,该查询列出在会议活动期间注册参观的人数,然后显示总和。这是我即将接近的 SQL 代码,但它忽略了总计(但不是单个总计)的 WHERE 子句:

SELECT     SiteTour, COUNT(SiteTour) AS count
FROM       tblConference
WHERE      (RegistrationType NOT LIKE 'cancellation')
GROUP BY   SiteTour
UNION ALL
SELECT     'TOTAL' AS SiteTour, COUNT(SiteTour) AS Expr1
FROM       tblConference AS tblConference_1
Run Code Online (Sandbox Code Playgroud)

这是它正在生产的东西:

         0
Tour1   22
Tour2   30
Tour3   30
----------
TOTAL   83
Run Code Online (Sandbox Code Playgroud)

(Tour1 计数 22 是正确的,因为有一个 RegistrationType 取消。但是,83 的总数应该是 82。)

另外,我得到了一个初始行,我猜是基于对 NULL 的计数,显示为 0。有什么方法可以防止这种情况发生?

请帮我纠正这个问题。谢谢你。

sql-server count where

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

在标量函数中为变量赋值的逻辑

我目前正在更新旧的标量值函数,希望能够提高它们的效率或将它们更改为内联 TVF。

在对我的重写进行故障排除时,我在原始代码中遇到了一些奇怪的问题,根据我对 SQL 中变量的理解,这似乎没有意义

如果我要写

 Declare @var as Integer
 Select @var = col1 from table
Run Code Online (Sandbox Code Playgroud)

然后这将始终返回 col1 中的最后一项。但是,在我正在使用的功能中,情况似乎并非如此。最初,有一个 where 子句根据输入更改结果,但是,删除它后,上述属性应该保持不变。在大多数情况下,确实如此,但也有一些情况并非如此。

大纲大致类似于以下内容:

create function f (
@var1 ... )
returns datatype
begin
    Declare @temp1 ... (several vars declared here)
    select @temp1 = col1, @temp2 = col2, ..., @tempX = max(colX) from(
        select col1, col2, ... ,
        colX * (case when name = 'X' then 1 else 0)
        from table1 
        INNER JOIN table2 on ...
        inner join table3 on ...
        left …
Run Code Online (Sandbox Code Playgroud)

sql-server optimization subquery functions

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

冒险作品中的语法错误通过 SMSS 安装脚本

我正在尝试通过脚本安装示例数据库。我试过酒吧、北风和现在的冒险工作。我有很多错误。我在这里发帖是因为我相信我做错了什么。我假设 Adventureworks 的安装脚本已正确编写脚本,但我仍然收到很多错误消息,例如

> Msg 102, Level 15, State 1, Line 39
Incorrect syntax near ':'.

Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) 
    Aug 22 2017 17:04:49 
    Copyright (C) 2017 Microsoft Corporation
    Developer Edition (64-bit) on Windows 10 Home 10.0 <X64> (Build 17134: )


Started - 2018-07-07 15:15:49.647

*** Dropping Database
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '$'.

*** Creating Database
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '$'.
Run Code Online (Sandbox Code Playgroud)

sql-server

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

根据SQL C#中的条件增加每一行

我有一个 textBox 的值为 100,我想在 stock_out 列中增加该值,但只有直到 stock_out 列等于 stock_in 列,如果第一行值是 40 比第一行 stock_out 应该从 100 增加 10 比100(90) 的剩余值应在其下方的行中递增,然后在其下方的行中递增,直到需要为止(直到 100 为 0)。项目按 Item_Name 和 Bill No asc 排序。

Bill No   Item_Name   Stock_in  Stock_out  stock_in_hand
1          chicken       50        40           10
2          chicken       40         0           40
5          chicken       60        10           50
6          chicken       100       20           80
3          fish          100       30           70
4          fish          20        20            0
Run Code Online (Sandbox Code Playgroud)

要得到的结果。

Bill No   Item_Name   Stock_in  Stock_out  stock_in_hand
1          chicken       50        50           0
2          chicken       40        40 …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2014

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

sql server 2012 master 数据库日志已损坏

sql 2012 master 数据库已损坏,我最近有 master 的备份,恢复 master 后我的用户数据库会发生什么,我是否必须从最新备份中恢复所有数据库?

谢谢

sql-server

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

mssql 在没有备份的情况下恢复今天所做的更改

应用程序中的错误进行了一些更改,现在我需要在没有备份的情况下回滚

我可以为此使用日志文件吗?

'ROLLBACK' 是另一种选择吗?

信息:

-我的恢复模式设置为简单

-AutoCommit 尚未设置

- 当我尝试使用恢复任务时,它告诉我“没有选择要恢复的备份集”

sql-server rollback

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

SQL Server LicenseType 已禁用

我已经安装了 SQL Server 2016 Enterprise 并应用了许可证密钥,但是

SERVERPROPERTY('LicenseType') is disbaled and  
SERVERPROPERTY('NumLicenses') is null
Run Code Online (Sandbox Code Playgroud)

对于 SQL Server 2016,注册表中没有如下键:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.SQL2016\Setup

知道如何更改 SQL Server 的 LicenseType 吗?

sql-server sql-server-2016

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

SQL Server 转而只使用页面文件而不是 RAM 并有效地冻结了世界

昨天我敲打我的 SQL Server 实例大约 3 个小时,运行密集计算,消耗了所有分配的物理 RAM (由于我的工作站硬件有限,我将它限制为 2GB),突然它(和许多其他东西?)释放了所有他们的内存明显切换到专门使用页面文件。

在我被迫重新启动之后,我的计算机出现了令人难以置信的滞后(仅访问电源选项就花了 10 分钟)。

我能够在重新启动之前获得任务管理器的屏幕截图(我以低更新速度在后台运行)。调整窗口大小以显示最大历史记录后,如下所示:

在此处输入图片说明

这种令人惊讶的行为导致了停机。这是记录在案的功能吗?

我正在运行带有 Enterprise 2014 数据库引擎的 Windows Server 2008 R2。

谢谢。

sql-server memory

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

将每个表迁移到新的链接服务器有太多前缀

不幸的是,我无法备份和恢复,因为新数据库使用的是旧版本的 SQL。

当我运行以下脚本时,出现此错误:

    Msg 117, Level 15, State 1, Line 1
    The object name 'eih-dr01.eih.ehs.org.DBA.dbo.fp_monthly' contains more than the maximum number of prefixes. The maximum is 2.
Run Code Online (Sandbox Code Playgroud)
    declare @table varchar(255),
    @sql nvarchar(max)

    declare c cursor local for


    select st.name from sys.tables st

    open c

    fetch next from c into @table

    set @sql = 'select * into [eih-dr01.eih.ehs.org].DBA.dbo.' + @table + ' from ' + @table

    print @sql
    exec sp_executesql @sql

    fetch next from c into @table

    close c
    deallocate c …
Run Code Online (Sandbox Code Playgroud)

sql-server

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