小编Din*_*hDB的帖子

在语句完成之前,最大递归100已用尽

我不断得到max recursion error这个查询.

起初我以为是因为返回null然后它会尝试匹配导致错误的空值,但是我重写了我的查询,因此不返回空值并且仍然会发生错误.

什么是重写此函数的最佳方法,以便不会发生错误

WITH EmployeeTree AS
(
    SELECT 
        EMP_SRC_ID_NR Id, USR_ACV_DIR_ID_TE Uuid, 
        CASE Employees.APV_MGR_EMP_ID 
           WHEN Null THEN '0' 
           ELSE Employees.APV_MGR_EMP_ID 
        END as  ApprovalManagerId 
    FROM 
        dbo.[tEmployees] as Employees WITH (NOLOCK)
    WHERE 
        APV_MGR_EMP_ID = @Id 
        and Employees.APV_MGR_EMP_ID is not null 
        and Employees.EMP_SRC_ID_NR is not null  

    UNION ALL

    SELECT 
        EMP_SRC_ID_NR Id, USR_ACV_DIR_ID_TE Uuid, 
        CASE Employees.UPS_ACP_EMP_NR 
           WHEN Null THEN '1' 
           ELSE Employees.UPS_ACP_EMP_NR 
        END as ApprovalManagerId 
    FROM 
        dbo.[tEmployees] as Employees WITH (NOLOCK)
    WHERE 
        UPS_ACP_EMP_NR = @Id 
        and Employees.APV_MGR_EMP_ID is not null …
Run Code Online (Sandbox Code Playgroud)

sql stored-procedures common-table-expression

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

SQL Server报告"无效的列名称",但该列存在且查询通过管理工作室工作

我遇到了一些僵局.我有一些由一些C#代码生成的查询.查询在Microsoft SQL Server Management Studio针对同一数据库运行时工作正常.

但是,当我的代码尝试运行相同的查询时,我得到关于无效列的相同错误,并抛出异常.引用此列的所有查询都失败.

最近将该列添加到数据库中.这是一个名为的日期列Incident_Begin_Time_ts.

失败的一个例子是:

select * from PerfDiag 
where Incident_Begin_Time_ts > '2010-01-01 00:00:00';
Run Code Online (Sandbox Code Playgroud)

其他查询Select MAX(Incident_Being_Time_ts);在代码中运行时也会失败,因为它认为列缺失.

有任何想法吗?

sql sql-server

104
推荐指数
5
解决办法
31万
查看次数

将选择结果转换为插入脚本 - SQL Server

我有SQL Server 2008,SQL Server Management Studio.

我需要从Table1database1中选择数据.然后我必须在结果和insert values into Table1database2中编辑一些值.

或者让我用其他方式.

如何将一个表中的数据转换为insert script.

sql sql-server ssms sql-server-2008

88
推荐指数
8
解决办法
15万
查看次数

我无法启动SQL Server浏览器

我无法启动SQL Server browser的SQL Service Configuration Manager 2008版本.绝对没有选项来启动该服务.它已被禁用,如下图所示.我该如何重新启动服务?

窗口

sql-server 64-bit sql-server-2008

86
推荐指数
5
解决办法
11万
查看次数

在SQL Server查询中返回月份名称

使用SQL Server 2008,我有一个用于创建视图的查询,我试图显示一个月的名称而不是整数.

在我的数据库中,datetime它位于一个名为的列中OrderDateTime.返回日期的查询中的行是:

DATENAME(yyyy, S0.OrderDateTime) AS OrderYear,
DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
Run Code Online (Sandbox Code Playgroud)

这将返回一列年份和一列月份作为整数.我想返回月份名称(Jan, Feb, etc).我试过了:

CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
Run Code Online (Sandbox Code Playgroud)

这显然是不正确的,因为我得到了

'AS'附近的语法不正确

信息.我的查询的正确语法是什么?

sql type-conversion sql-server-2008

78
推荐指数
4
解决办法
38万
查看次数

SQL Server - 列"在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中"

我想B在我的下面的SQL中显示该列,但是当我将它添加到查询时它会给我以下错误:

列T2.B'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中.

我的代码:

SELECT A, COUNT(B) as T1, B 
FROM T2 
WHERE ID=1 
GROUP BY A 
Run Code Online (Sandbox Code Playgroud)

sql-server group-by

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

获取SQL Server中的当前日期?

如何在MS-SQL Server 2008 R2中获取当前日期?

我的数据库中列的格式是DATETIME,日期以以下格式存储:

+++++++++++++ Vrdate ++++++++++
|                             |
|   2012-11-18 00:00:00.000   |
|   2012-11-19 00:00:00.000   |
|   2013-11-18 00:00:00.000   |
|   2012-12-01 00:00:00.000   |
|   2010-10-09 00:00:00.000   |
|   2012-11-11 00:00:00.000   |
|                             |
+++++++++++++++++++++++++++++++
Run Code Online (Sandbox Code Playgroud)

我搜索但无法找到以这种格式获取日期的方式(即哪个时间与之相关00:00:00.00).我找到了GETDATE()函数但是它提供了当前时间以及日期,我想要的是以下列格式获取日期:CurrentDate 00:00:00.00

我怎么能得到这个?

sql sql-server datetime sql-server-2008 current-time

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

将结果与今天的日期进行比较?

有没有办法Now()在SQL中使用函数来选择具有今天日期的值?

我在印象中Now()会包含时间和日期,但今天的日期会有时间设置00:00:00,因此这永远不会匹配?

sql sql-server current-time

66
推荐指数
5
解决办法
30万
查看次数

如何在SQL Azure数据库中创建新用户?

我想使用以下模板:

-- =================================================
-- Create User as DBO template for SQL Azure Database
-- =================================================
-- For login <login_name, sysname, login_name>, create a user in the database
CREATE USER <user_name, sysname, user_name>
    FOR LOGIN <login_name, sysname, login_name>
    WITH DEFAULT_SCHEMA = <default_schema, sysname, dbo>
GO

-- Add user to the database owner role
EXEC sp_addrolemember N'db_owner', N'<user_name, sysname, user_name>'
GO
Run Code Online (Sandbox Code Playgroud)

我想创建一个名为user1的用户,密码为'user1pass'.我连接了我的默认数据库'authentication',我打开了一个查询窗口.

但模板对我来说没有意义.例如什么是sysname,我在哪里提供密码以及我应该使用什么作为default_schema?

特定用户需要有能力做所有事情.但是如何设置它以便他可以做任何事情,如果我让用户成为数据库所有者,那该怎么办呢?

到目前为止,我尝试过:

CREATE USER user1, sysname, user1
    FOR LOGIN user1, sysname, user1
    WITH DEFAULT_SCHEMA = dbo, sysname, dbo
GO …
Run Code Online (Sandbox Code Playgroud)

sql-server azure azure-sql-database

61
推荐指数
5
解决办法
8万
查看次数

如何在SQL Server数据库中添加auto_increment主键?

我有一个表设置,目前没有主键.我需要做的就是添加一个primary key, no null, auto_increment.

我正在使用Microsoft SQL Server数据库.我知道它不能在单个命令中完成,但我尝试的每个命令都会返回语法错误.

编辑---------------

我创建了主键,甚至将其设置为非null.但是,我无法设置auto_increment.

我试过了:

ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment
ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment
ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment
ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment
Run Code Online (Sandbox Code Playgroud)

我正在使用,NVARCHAR因为它不会让我NOT NULL在int下设置

sql sql-server auto-increment

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