标签: sql-server-2014

没有选择目录提示的SQL Server 2014 Express无提示安装

我想用/ qs命令进行静默安装,以安装sql server 2014 express.我用2008快递进行了很多安装,并没有出现这种问题.

当我尝试安装时,通过双击安装文件或通过命令行安装,它会显示选择提取文件的目录提示.我搜索了很多,但我找不到任何有关此信息.

我的问题是:有没有办法指定要与其他命令一起提取的路径?

我认为/ qs(静音模式)不应该接受任何用户输入,这看起来像是2014版本的缺陷.有任何想法吗?

sql-server sql-server-express sql-server-2014

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

查询表值函数时增加最大递归深度

我正在调用一个递归表值函数,如下所示:

SELECT * FROM dbo.Some_TVF(@param1, @param2)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

超出最大存储过程,函数,触发器或视图嵌套级别(限制32).

事实证明,数据需要比32更深.是否可以更改此单个呼叫的深度?

编辑:BTW,这不起作用:

SELECT * FROM dbo.Some_TVF(@param1, @param2) OPTION (MAXRECURSION 100)
Run Code Online (Sandbox Code Playgroud)

即使我指定MAXRECURSION提示,我仍然会收到相同的错误消息(限制为32).

sql-server sql-server-2014

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

SELECT GROUP查询生成的组数

我尝试了以下查询来选择GROUP BY查询产生的组数:

SELECT count(*)
FROM (
        SELECT count(*)
        FROM MyTable
        WHERE Col2 = 'x'
        GROUP BY Col1
     )
Run Code Online (Sandbox Code Playgroud)

不幸的是,这个查询无效:Incorrect syntax near ')'..

注意:我想得到一行(我已经找到了n次结果的解决方案,其中n =组计数).

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

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

求和一列,减去第二列

我想显示两列的减法.从第一列我需要得到所有值的总和并减去第二列中的每个值.

这是表结构:

id | name | col1  | col2 | date
------------------------------------
432| xxx  | 0     | 15   |2015-11-17
432| yyy  | 10    | 30   |2015-11-19 
432| zzz  | 60    | 40   |2015-11-20  

433| aaa  | 0     | 60   |2015-11-17
433| bbb  | 80    | 20   |2015-11-19 
433| ccc  | 60    | 10   |2015-11-20  
Run Code Online (Sandbox Code Playgroud)

公式应该去:

sum(col1) = 70  =>>>   WHERE ID = 432  

70 - col2            col3
-------------------------
=> 70 - 15         =  55
=> 70 - (30 + 15) …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2014

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

在SQL Server 2014中列出数据库和表空间

我如何列出每个数据库SQL Server 2014和表空间大小?

我测试了这个查询

EXEC sp_spaceused null, false
Run Code Online (Sandbox Code Playgroud)

但我只得到一个数据库的结果.

t-sql sql-server sql-server-2014

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

SQL:组合两个没有'Join on'的表

所以我有两个表只有几个相似的列,我需要加入它们以给它们一个共同的排序,但没有组合任何数据.

例如:

表Foo:

AccountID   Date        FooType
--------------------------------
1234        12/24/15    A
1234        12/12/15    A
5464        01/04/15    A
Run Code Online (Sandbox Code Playgroud)

表栏:

AccountID   Date        BarAmount   BarFlag
--------------------------------------------
1234        05/03/15    12.56       1
7657        02/14/15    5.11        0
9879        01/04/15    8.00        1
Run Code Online (Sandbox Code Playgroud)

目标是使输出为:

AccountID   Date        BarAmount   BarFlag    FooType
-------------------------------------------------------
1234        05/03/15    12.56       1          NULL
1234        12/24/15    NULL        NULL       A
1234        12/12/15    NULL        NULL       A
7657        02/14/15    5.11        0          NULL
9879        01/04/15    8.00        1          NULL
5464        01/04/15    NULL        NULL       A
Run Code Online (Sandbox Code Playgroud)

所以换句话说,我不希望通过加入AccountID来结合(这会给我4行或5行,具体取决于我如何设置它)但我确实希望在列名相同时填充列.(桌子之间有一些交叉)

UNION ALL给了我一个错误,因为表格虽然有一些共同的列,却是非常不同的.它给出的错误是:"使用UNION,INTERSECT或EXCEPT运算符组合的所有查询必须在其目标列表中具有相同数量的表达式." 有些文章声称可以通过指定列名来绕过它.我试过了(下面的查询),它仍然给了我错误.

SELECT [AccountID],[Date],[BarAmount],[BarFlag] FROM Bar 
UNION …
Run Code Online (Sandbox Code Playgroud)

sql database sql-server join sql-server-2014

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

无法确定元数据,因为每个代码路径都会导致错误; 查看其中一些错误

我正在从SQL Server 2005迁移到SQL Server 2014,其中一个查询在SQL Server 2014中停止工作:

select * 
from openrowset ('SQLOLEDB','Server=(local);TRUSTED_CONNECTION=YES;',' exec [MyDatabase].[dbo].[MyTable]')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

消息11529,级别16,状态1,过程sp_describe_first_result_set,第1行
无法确定元数据,因为每个代码路径都会导致错误; 查看其中一些错误.

消息4902,级别16,状态1,过程sp_describe_first_result_set,第1行
无法找到对象"#MyTempTable",因为它不存在或您没有权限.

dbo.MyTable#MyTempTable不是真实姓名.

什么可能导致此错误?任何帮助,将不胜感激.

谢谢

sql metadata openrowset sql-server-2014

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

我可以使SQL Server FORMAT确定吗?

我想制作一个返回整数形式的UDF,YYYYMM以便我可以在一个月内轻松地对某些内容进行分区.我试图将此函数分配给PERSISTED计算列的值.

我目前有以下,工作正常:

CREATE FUNCTION dbo.GetYearMonth(@pDate DATETIME2)
RETURNS INT
WITH SCHEMABINDING
AS
BEGIN
    DECLARE @fYear VARCHAR(4) = RIGHT('0000' + CAST(YEAR(@pDate) AS VARCHAR),4)
    DECLARE @fMonth VARCHAR(2) = RIGHT('00' + CAST(MONTH(@pDate) AS VARCHAR),2)

    RETURN CAST(@fYear + @fMonth AS INT)
END
Run Code Online (Sandbox Code Playgroud)

但我认为使用它更清洁FORMAT.我试过这个:

CREATE FUNCTION dbo.GetYearMonth(@pDate DATETIME2)
RETURNS INT
WITH SCHEMABINDING
AS
BEGIN
    DECLARE @fYear VARCHAR(4) = FORMAT(@pDate,'yyyy', 'en-us')
    DECLARE @fMonth VARCHAR(2) = FORMAT(@pDate,'MM', 'en-us')

    RETURN CAST(@fYear + @fMonth AS INT)
END
Run Code Online (Sandbox Code Playgroud)

但这个功能是不确定的.有没有办法FORMAT确定性?或者有更好的方法来做到这一点,使UDF确定性?

sql-server user-defined-functions sql-server-2014

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

"无法找到存储过程'ÿþ'"错误

我正在尝试执行查询,在读取SQL脚本文件中的内容后,将其分配给变量然后执行内容.然后我得到这个错误说Could not find stored procedure 'ÿþ'.请帮我理解这个问题.谢谢.

信息:

SQL Server 2014

SSMS版本 - 12.0.4100.1

sql-server ssms utf-16 windows-1252 sql-server-2014

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

增加组内的计数

我试图在一组结果中得到一个递增计数器.

例如,假设我有一个messages表:

messages
--------
- id (int)
- user_id (int)
- sent_at (date)
- body (text)
Run Code Online (Sandbox Code Playgroud)

我想执行一个查询,给我这样的结果:

+---------+------------+-------------+---------+
| user_id | message_id | sent_at     | counter |
+---------+------------+-------------+---------+
|       1 |          1 |  2017-01-01 |       1 |
|       1 |          3 |  2017-01-15 |       2 |
|       1 |          4 |  2017-01-22 |       3 |
|       2 |          2 |  2017-01-06 |       1 |
|       2 |          6 |  2017-01-22 |       2 |
|       3 |          5 | …
Run Code Online (Sandbox Code Playgroud)

sql sql-server select count sql-server-2014

3
推荐指数
3
解决办法
155
查看次数