Questions tagged «sql-server»

所有版本的Microsoft SQL Server(非MySQL)。还请添加特定于版本的标记,例如sql-server-2016,因为它通常与问题相关。

1
用户“ NT AUTHORITY \ ANONYMOUS LOGON”的登录失败。(MsDtsSrvr)
我有一个集群环境,其中有很多实例。我已经修改了xml文件,以允许多个实例使用ssis。当实例与群集ssis在同一节点上时,一切工作都很好。但是,如果它们位于不同的节点上,则似乎存在无法修复的问题,并且丢失了我的凭据。由于某些原因,它尝试改用匿名登录。这是完整的错误: SSIS服务配置中指定的SQL服务器不存在或不可用。当计算机上没有默认的SQL Server实例时,可能会发生这种情况。有关更多信息,请参见Server 2005联机丛书中的主题“配置Integration Services服务”。 用户“ NT AUTHORITY \ ANONYMOUS LOGON”的登录失败。(MsDtsSrvr) 我会很感激任何人在这个问题上的帮助。 谢谢,


1
sp_execute期望类型为'int'的参数'@handle'
我正在尝试检查存储过程,如果我的目标数据库中存在表。如果没有,那么我将使用源数据库中的information_schema表创建表。但是,当我使用sp_execute尝试并返回表(如果该表存在)时,会收到错误消息,过程期望类型为'int'的参数'@handle'。 我没有使用@handle参数。有人可以告诉我这个错误是什么意思,为什么我会收到它?我的代码的相关部分如下。 DECLARE @SQL NVARCHAR(MAX), @Parameters NVARCHAR(4000), @TableNotExists INT, @SourceTable NVARCHAR(200), @DestDB NVARCHAR(200) BEGIN SET @SourceTable = 'table' SET @DestDB = 'database' SET @Parameters = N'@SourceTableIN NVARCHAR(200), @TableNotExistsOut INT OUTPUT' SET @SQL = N'USE [' + @DestDB + '] IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ''BASE …

2
SQL Server“创建数据库”语句。如何继承自动增长设置?
我正在使用SQL Server 2008 R2,并通过连续部署来创建数据库。 在我们的系统中,SQL Server中的默认1Mb / 10%自动增长设置无法很好地处理我们的数据。特别是因为我们有一个遗留应用程序,使我们无法太多更改架构。我们希望在实例级别配置数据库设置,以便我们可以针对分阶段部署进行更改。 我已经在几个地方阅读过,新数据库的默认设置基于'model'的设置,但是看来这只能通过单击SQL Management Studio UI中的新数据库来实现,而不是通过脚本(例如CREATE DATABASE [MyDb])来实现。 msdn.microsoft.com/zh-CN/library/ms186388(v=sql.105).aspx sqlservercentral.com/Forums/Topic1065073-391-1.aspx /programming/8828557/possible-to-configure-database-autogrowth-settings-at-the-instance-level/8828604#comment15586568_8828604 有人真的可以使用它来创建脚本吗?还有其他方法可以为每个服务器实例设置自动增长吗?

3
SQL Server 2012 Standard Edition-多个实例和内存利用率
如果我们在一台具有192 GB RAM的服务器上有多个SQL Server 2012 Standard Edition实例(内存限制为64 GB),那么两个实例只能访问前64 GB的内存,还是可以访问其他实例?部分内存,以便它们每个都可以拥有自己的64 GB“块”。 如果两个节点都故障转移到单个节点,则这是针对主动/主动群集的考虑因素。


3
在某些表上禁用日志记录
我正在使用SQL Server2005。我有两个包含聚合信息的表。信息不断更新,每天生成近5GB的日志数据。(这比整个数据库要大!)我想禁用对这些表的日志记录,因为回滚并不是必须的。但是,我想继续登录数据库中的其他表。 是否可以禁用数据库中某些表的日志记录?如果不是,是否可以将两个表放在相同的架构中,然后禁用该架构的日志记录?将两个表移到一个单独的数据库并在那里禁用日志记录的唯一选择是吗? 更新: 我想我会解释为什么我真的不需要在这些表上记录活动。 这两个表充满了GPS数据,因此它们变得很大。第一个表格是从该字段的六个Android表格中捕获原始位置。每个平板电脑的新数据每5-10秒就会出现一次。然后将该信息汇总为locationA,locationB,travelTime。目标是根据实际驾驶数据最终使所有位置之间的行驶时间最短。该数据仅适用于一个小城市,并且只能精确到小数点后四位,因此是可管理的。但是,随着新的原始数据的到来,需要更新的行进时间变慢,并且需要插入新的行进时间。 原始数据汇总后,将被清除。我们不会退缩到更长的旅行时间,所以这就是为什么在这些表中回滚没有太大关系。

2
慢的性能将几行插入到巨大的表
我们有一个流程,该流程从商店获取数据并更新公司范围的库存表。该表按日期和项目列出了每个商店的行。对于拥有许多商店的客户,此表可能会非常大-大约5亿行。 随着商店输入数据,此库存更新过程通常一天运行多次。这些运行仅更新来自少数商店的数据。但是,客户也可以运行此程序以更新例如过去30天中的所有商店。在这种情况下,该过程启动了10个线程,并在一个单独的线程中更新了每个商店的库存。 客户抱怨该过程需要很长时间。我已经概要分析了该过程,发现一个将INSERTs插入此表的查询所消耗的时间比我预期的要多得多。该插入有时会在30秒内完成。 当我对此表运行临时SQL INSERT命令(由BEGIN TRAN和ROLLBACK绑定)时,临时SQL完成的时间大约为毫秒。 执行缓慢的查询如下。这个想法是插入不存在的记录,然后在我们计算各种数据位时更新它们。该过程的上一步已确定了需要更新的项目,进行了一些计算,并将结果填充到tempdb表Update_Item_Work中。此过程在10个单独的线程中运行,并且每个线程在Update_Item_Work中都有其自己的GUID。 INSERT INTO Inventory ( Inv_Site_Key, Inv_Item_Key, Inv_Date, Inv_BusEnt_ID, Inv_End_WtAvg_Cost ) SELECT DISTINCT UpdItemWrk_Site_Key, UpdItemWrk_Item_Key, UpdItemWrk_Date, UpdItemWrk_BusEnt_ID, (CASE UpdItemWrk_Set_WtAvg_Cost WHEN 1 THEN UpdItemWrk_WtAvg_Cost ELSE 0 END) FROM tempdb..Update_Item_Work (NOLOCK) WHERE UpdItemWrk_GUID = @GUID AND NOT EXISTS -- Only insert for site/item/date combinations that don't …

2
SQL Server如何为外键引用选择索引键?
我正在使用从MS Access导入的旧数据库。在MS Access> SQL Server升级期间创建了大约二十个带有非集群唯一主键的表。 这些表中的许多表还具有唯一的非聚集索引,这些索引与主键重复。 我正在尝试清理。 但是我发现的是,在将主键重新创建为聚簇索引之后,然后尝试重建外键,该外键引用了旧的重复索引(这是唯一的)。 我知道这是因为它不会让我删除重复的索引。 我认为如果存在,SQL Server总是会选择一个主键。SQL Server是否具有在唯一索引和主键之间进行选择的方法? 要复制该问题(在SQL Server 2008 R2上): IF EXISTS (SELECT * FROM sys.tables WHERE name = 'Child') DROP TABLE Child GO IF EXISTS (SELECT * FROM sys.tables WHERE name = 'Parent') DROP TABLE Parent GO -- Create the parent table CREATE …

1
SQL Server作业超时
因此,似乎无法为SQL Server作业中的每个步骤设置超时(StackExchange的文章)。 MSDN指出,您当然可以设置代理超时: SQL Server代理属性。 设置Job执行关闭。 问题 代理超时如何工作? 还有其他方法(最好是通过配置)来设置单步超时吗? 还有其他方法(最好是通过配置)来设置整个作业超时吗?


4
我真的需要保留.LDF文件吗?
每个月,我们都会制作生产数据库的月末快照。这些月末快照严格用于报告目的,没有任何插入,更新或删除操作。每个快照都有一个.MDF和.LDF文件。 我想删除.LDF文件并释放服务器上的一些空间。有什么原因需要保留.LDF文件? 澄清: 我们的生产数据库每天晚上都从另一个系统的文件提取中重新创建。我们只报告生产数据库,没有更新。 夜间过程:据 我所知... 每天晚上,数据库表都被截断 。表通过一系列批量插入语句填充。 索引被重建

5
发生任何RESTORE DATABASE事件后自动执行存储过程
是否有可能让SQL Server 2008 R2 Standard在还原或附加到实例的任何给定数据库中自动执行存储过程? 我已经通过创建服务器级触发器来解决一个问题,该触发器将在DDL事件发生CREATE_DATABASE或ALTER_DATABASE触发后在给定的数据库中执行存储过程。不幸的是,这不适用于数据备份备份还原。 详细地说,我们在还原的每个数据库中都有一个“清理”存储过程,我正在寻找一种方法,可以在将备份还原到实例时自动执行该过程。 Googling向我指出了要在SQL Server中配置“ 审计”或“ 策略”以获得此功能,但是乍一看,这些功能非常强大,因此我无法确定审计还是“警察”是开始调查的途径。

1
sp_executesql的安全含义是什么?
默认情况下,在SQL Server中,[public]角色具有的EXECUTE权限sp_executesql。 但是,我继承了一个数据库服务器,以前的DBA撤消了该数据库服务器的EXECUTE权利sp_executesql。 作为临时的解决方法,我一直在根据需要(通过在master数据库中的角色)授予EXECUTE权限sp_executesql。但是,这开始成为维护难题。 如果我EXECUTE回馈公众,我是否需要了解其他影响?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.