标签: sql-server

RAISERROR严重程度不同意味着什么?

我最好的谷歌结果是这样的:

  • 低于11是警告,而不是错误
  • 11-16可供使用
  • 16以上是系统错误
  • 11-16之间没有行为差异

但是,从BOL,"任何用户都可以指定从0到18的严重级别".

在我的特定存储过程中,我希望将错误返回到.Net客户端应用程序,因此看起来11-18之间的任何严重性级别都可以解决问题.有没有人有关于每个级别的含义以及如何使用它们的任何权威信息?

sql-server raiserror

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

如何在select子句中使用像SQL Server这样的from子句加入Postgresql子查询?

我试图在postgresql上写下面的查询:

select name, author_id, count(1), 
    (select count(1)
    from names as n2
    where n2.id = n1.id
        and t2.author_id = t1.author_id
    )               
from names as n1
group by name, author_id
Run Code Online (Sandbox Code Playgroud)

这肯定适用于Microsoft SQL Server,但它在postegresql上完全不起作用.我稍微阅读了它的文档,似乎我可以将其重写为:

select name, author_id, count(1), total                     
from names as n1, (select count(1) as total
    from names as n2
    where n2.id = n1.id
        and n2.author_id = t1.author_id
    ) as total
group by name, author_id
Run Code Online (Sandbox Code Playgroud)

但是这会在postegresql上返回以下错误:"FROM中的子查询不能引用相同查询级别的其他关系".所以我被卡住了.有谁知道我怎么能做到这一点?

谢谢

sql sql-server postgresql subquery

70
推荐指数
4
解决办法
21万
查看次数

SQL NOT IN不工作

我有两个数据库,一个保存库存,另一个包含主数据库记录的子集.

以下SQL语句不起作用:

SELECT  stock.IdStock
        ,stock.Descr       
FROM    [Inventory].[dbo].[Stock] stock
WHERE   stock.IdStock NOT IN
        (SELECT foreignStockId FROM
         [Subset].[dbo].[Products])
Run Code Online (Sandbox Code Playgroud)

不是不起作用.删除NOT会得到正确的结果,即两个数据库中的产品.但是,使用NOT IN并不会返回任何结果.

我做错了什么,有什么想法吗?

sql sql-server

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

由于登录失败,SQL Server 2012无法启动

我最近在新的Windows 7安装上安装了Microsoft SQL Server 2012,但每当我想运行服务器时,我都会收到以下错误:

错误1069:由于登录失败,服务未启动.

以下用户配置为启动服务: NT Service\MSSQL$SQLEXPRESS

我该如何解决这个问题?

sql-server permissions installation sql-server-2012

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

在sql server中获取表和索引存储大小

我想获取数据库中每个表的表数据和索引空间:

Table Name             Data Space           Index Space
-------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我怎样才能达到这个效果?

sql sql-server indexing sql-server-2008

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

什么是T-SQL要授予SQL Server中数据库中表的读写权限?

在SQL Server中为用户分配db_datareaderdb_datawriter角色的确切SQL是什么?

用户名是MYUSER和数据库MYDB.

t-sql sql-server

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

我可以在存储过程中使用可选的OUTPUT参数吗?

我有一个存储过程有一堆输入和输出参数,因为它是将值插入多个表.在某些情况下,存储过程仅插入到单个表中(取决于输入参数).这是一个模拟的场景来说明.

表/数据对象:

Id
Name
Address
Run Code Online (Sandbox Code Playgroud)

名称

Id
FirstName
LastName
Run Code Online (Sandbox Code Playgroud)

地址

Id
Country
City
Run Code Online (Sandbox Code Playgroud)

假设我有一个插入人的存储过程.如果地址不存在,我将不会将其添加到Address数据库中的表.

因此,当我生成调用存储过程的代码时,我不想打扰添加Address参数.对于INPUT参数,这是可以的,因为SQL Server允许我提供默认值.但是对于OUTPUT参数我在存储过程中做什么使它成为可选的,所以我没有收到错误...

过程或函数'Person_InsertPerson'需要参数'@AddressId',这是未提供的.

sql-server stored-procedures data-access

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

您能解释一下sys.sp_addextendedproperty在以下代码中的用法吗?

在创建视图后,以下代码中发生了什么?你能给我任何想法或路径吗?

此代码取自此处.

/****** Object:  View [dbo].[vProductImages]    Script Date: 04/28/2008 16:59:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[vProductImages]
AS
SELECT        dbo.Products_Images.ProductID, dbo.Images.ThumbUrl, dbo.Images.FullImageUrl
FROM            dbo.Products_Images INNER JOIN
                         dbo.Images ON dbo.Products_Images.ImageID = dbo.Images.ImageID
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server extended-properties sql-server-2008

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

分区函数COUNT()可以使用DISTINCT

我正在尝试编写以下内容,以便获得不同的NumUsers,如下所示:

NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth])
Run Code Online (Sandbox Code Playgroud)

管理工作室对此并不感到高兴.当我删除DISTINCT关键字时,错误消失,但它不会是一个独特的计数.

DISTINCT在分区函数中似乎不可能.我如何寻找独特的计数?我是否使用更传统的方法,例如相关子查询?

进一步研究一下,也许这些OVER函数与Oracle的工作方式不同,它们不能用于SQL-Server计算运行总计.

我在SQLfiddle上添加了一个实例,我尝试使用分区函数来计算运行总计.

sql t-sql sql-server sql-server-2008-r2 sql-server-2014

69
推荐指数
4
解决办法
12万
查看次数

"由于共享主机中的'LOG_BACKUP'",数据库的事务日志已满

我有一个Asp.Net MVC 5网站,在共享主机方案中使用EntityFramework codefirst方法.它使用开源WebbsitePanel作为控制面板,其SQL Server面板有些限制.今天当我想编辑数据库时,我遇到了这个错误:

The transaction log for database 'db_name' is full due to 'LOG_BACKUP'
Run Code Online (Sandbox Code Playgroud)

我四处搜索,发现了很多相关的答案,比如这个这个或者这个问题,但问题是他们建议在数据库上运行查询.我试过跑步

db.Database.ExecuteSqlCommand("ALTER DATABASE db_name SET RECOVERY SIMPLE;");
Run Code Online (Sandbox Code Playgroud)

使用visual studio(在HomeController)上但是我收到以下错误:

System.Data.SqlClient.SqlException: ALTER DATABASE statement not allowed within multi-statement transaction.
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决我的问题?我应该联系支持团队(这对我的主人来说有点差)还是我可以自己解决?

database sql-server asp.net asp.net-mvc

69
推荐指数
5
解决办法
19万
查看次数