标签: sql-server

我可以更新我的 Microsoft Enterprise SQL Server 吗?

我只是有一个关于 SQL Server 及其附带的各种工具的快速问题。

我将我的 SQL Server Management Studio 更新到最新版本,因为我想使用该STRING_AGG功能,但显然这与实际的 SQL Server 是分开的。

所以我正在尝试更新我的实际 SQL Server。我下载了这个链接,这是正确的吗?(适用于 Microsoft® Windows 最新累积更新的 SQL Server® 2017) https://www.microsoft.com/en-us/download/details.aspx?id=56128

我运行了它,但它似乎没有升级任何东西。它似乎所做的只是创建了一个灌输中心。那是我必须去的地方吗(我需要对每个操作都有管理员权限,所以我很难检查)?

甚至可以进行此升级。我在一家公司工作,我们使用企业版。我们连接到两个不同的第三方数据库。在我的本地计算机上更新是否有效?或者我是否必须与 DBA 交谈并在某些主服务器上对其进行更新?

sql-server upgrade

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

什么是“LOB”

我看到在描述表列中的数据类型时经常使用术语 LOB。它是什么的首字母缩写词,为什么这个数据对象很重要?

oracle sql-server

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

在 dbo 模式上设置只读权限,但允许在另一个模式中创建实体?

是否可以在数据库中创建自定义架构,以便在该数据库中对 dbo 架构具有只读访问权限的用户可以设置为能够为自定义架构创建和修改实体?

schema sql-server permissions sql-server-2008-r2

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

计算两个指定日期之间每个月的天数

我正在尝试编写一个 SQL Server 公式,该公式给出两个指定日期之间每个月的天数。例如:

在此处输入图片说明

sql-server

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

在数据库中添加新列的正确方法

当我们向现有表中添加新列时,正确的方法是什么?

例如,我已经有像 Foo1、Foo2、Bar1、Bar2 这样的列。现在我想添加一个名为 Foo3 的新列。

当我想添加具有相似名称的列时,标准方法是什么(如果是这样的话)?

我看到 2 个选择:

  1. 创建具有新结构的临时表,其中新列位于同名列的旁边,将数据从现有表复制到新表并删除现有表并重命名临时表。有点复杂的过程,但使数据库字段更具可读性。
  2. 最后添加新列。操作更简单。但是列名如果放在最后可能不会被清楚地理解。

为了获得一些参考,我们正在使用数据库项目来控制数据库更改,并为应用程序开发人员提供更好的 GUI 以进行数据库更改。我们使用某种 ORM 与数据库交互,因此没有人使用数据库对象名称查询数据库。

更新: 我在一些现有列上有几个索引。但是名称相似的列(包括我想添加的列)不属于任何索引。

index source-control database-design sql-server table

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

从 SQL 查询中排除记录

我有一个表,我试图只返回 rendition_type Interactive 的记录,而没有其他关联的 rendition_type。如果一个记录有多个 rendition_type,我需要将它从列表中排除。

DOC_ID    RENDITION_ID    RENDITION_TYPE
001       001             Interactive
001       002             Web PDF
002       003             Interactive
003       004             Interactive
003       005             Print PDF
004       006             Interactive
005       007             Interactive
005       008             Web PDF
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个查询,该查询将仅返回 document_ID 的 Rendition_type 类型仅为 1 且该类型为 Interactive 的行。

sql-server t-sql sql-server-2017

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

无法在探查器中跟踪“将数字转换为数字数据类型的算术溢出错误”错误

我有一个 .net 应用程序。它试图创建表、视图并将数据插入/更新到许多表中。应用程序运行时出现错误。

我尝试在 SQL Profiler 中跟踪查询,但没有发现任何错误。有什么方法可以跟踪错误语句,或者我需要在探查器中添加任何其他事件。

我已经尝试过以下事件(例外):

  • RPC:已完成
  • RPC:开始
  • SP:开始
  • SP:已完成
  • SP:开始
  • SP:StmtCompleted
  • SQL:批量启动
  • SQL:批量完成

sql-server-2008 sql-server profiler

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

用有限的磁盘空间恢复数据库备份

我想使用大约 60GB 的备份 (.bak) 还原 SQL Server 数据库。

是否可以在只有 100GB 可用磁盘空间的机器上执行此操作?

或者我是否至少需要 60GB 的.bak文件和 60GB 的 SQL Server 上的最终数据库?

有没有办法将.bak文件复制到服务器中?

网络共享在 SSMS 中不可见 - 只有像 USB 设备这样的本地驱动器。

sql-server disk-space restore

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

如何在大量数据库中删除过程 (SQL Server 2016)

我有一个简单的过程,存在于 150 多个数据库中。我可以将它们一一删除,这是软件开发界最愚蠢的工作。或者我可以以某种方式在一个查询中动态删除它们,这很聪明但不起作用。

我试过了:

execute sp_msforeachdb 'drop procedure Usages'
Run Code Online (Sandbox Code Playgroud)

我有:

无法删除过程“用法”,因为它不存在或您没有权限。

所以我想也许我为它创建了一个游标。于是我写道:

declare @command nvarchar(max) = '
drop procedure Usages
';
declare @databaseName nvarchar(100)
declare databasesCursor cursor for select [name] from sys.databases where database_id > 5
open databasesCursor
fetch next from databasesCursor into @databaseName
while @@fetch_status = 0
begin
    print @databaseName
    execute sp_executesql @command
    fetch next from databasesCursor into @databaseName
end
close databasesCursor
deallocate databasesCursor
Run Code Online (Sandbox Code Playgroud)

再次,我收到了同样的消息。我想,也许它不会改变数据库的上下文,因此我在删除命令前面加上了给定数据库的名称,所以命令会变得类似于drop procedure [SomeDatabase].dbo.Usages,但后来我收到了:

“DROP PROCEDURE”不允许将数据库名称指定为对象名称的前缀。

所以,我想出动态执行,use @databaseName以便我可以在该数据库的上下文中删除过程。但它不起作用。我该怎么办?我被困在聪明的方法上,而且我现在比愚蠢的方法花费的时间更多。

sql-server stored-procedures cursors sql-server-2016

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

在哪里放单引号?

我正在尝试执行以下语句,该语句创建一个名为 service2019 的数据库:

DECLARE @dbname VARCHAR(50);
SET @dbname = 'service' + CAST(YEAR(GETDATE()) AS VARCHAR(4));


EXEC (
'CREATE DATABASE ' + @dbname  + ' ON  PRIMARY 
( NAME =' + '' + @dbname +'' + ', FILENAME = ''C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQL2014TEST\MSSQL\DATA\''' + '''' + @dbname + '''' + '''.mdf'''  + ', SIZE = 10MB , MAXSIZE = UNLIMITED, FILEGROWTH = 100KB )
 LOG ON 
( NAME =' + '' + @dbname + '_log' + ', FILENAME = ''C:\Program Files\Microsoft SQL …
Run Code Online (Sandbox Code Playgroud)

sql-server dynamic-sql t-sql sql-server-2014 quoted-identifier

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