Questions tagged «sql-server-2005»

SQL Server 2005(主要版本9.00.xxxx)。还请标记sql-server。

1
为什么在列上运行ALTER TABLE会使它从NOT NULL变为NULL?
我正在大规模更新SQL Server数据库。我将所有numeric(38,0)列更改为int (是的,SQL Server脚本是从Oracle脚本创建的)。使用SMO和C#(我是一名软件工程师),我设法生成了非常不错的脚本,如SQL Server Management Studio。除了一个特定的问题,所有这些工作都非常好: 对于少数几个表,当我调用ALTER TABLE [myTable] ALTER COLUMN [columnA] INT它时,它决定还更改的列NOT NULL to NULL。这当然是一个巨大的问题,因为我需要为那些特定列上的大多数表重新生成主键。 显然,我在使用SMO时有很多选择,可以找出哪些列是主键,并在更新数据类型后或更新时将它们强制为NOT NULL,但我真的很好奇这可能是什么原因。

2
如何用联接替换where子句?
通常,当我看到使用类似以下内容的SQL时: select * from employees where epmloyeeTypeId in (select id from type where name = 'emp') 我将其替换为where: select e.* from employees e inner join type t on t.id=e.epmloyeeTypeId and t.name = 'emp' 如果逆是子句not in(如下面)而不是in子句,是否可以对逆做同样的事情? INSERT into Subscriptions(ProjectId, RecordTypeCID, NTID, Active, Added, LastUpdate, UpdateBy) SELECT @ProjectId, RecordTypeCID, @NTID, 1, GETDATE(), GETDATE(), …

1
完整计划缓存行为
在SQL Server 2005中,当计划缓存填满时会发生什么?我进行了一些研究,从收集的点点滴滴来看,似乎已给缓存的计划指定了“年龄”,其中包括其权重或编译成本乘以自缓存以来已运行的次数。随着时间的流逝,该年龄逐渐减少,直到达到0,然后才被视为“老化”,并在需要时成为冲洗对象。计划缓存填满后,会从缓存中清除过期的计划。 幕后是否还有其他事情使这种情况复杂化? 谢谢, 马特

8
在开发箱上为开发人员授予SA特权
尽管有强烈的抗议,我们的管理层还是决定必须在开发服务器上授予开发团队“ sa”权利。问题是我们DB支持小组仍然负责维护此框。 现在,我们已经被委托为具有这些增强的特权的开发团队提供了一个“要注意事项”清单。 请添加到此列表: 做-将活动限制在正在开发的数据库中 不要 - 更改任何SQL实例设置 sp_configure(包括cmdshell) 添加/更改/删除任何安全设置 添加/更改/删除数据库对象 添加/更改/删除服务器对象,例如备份设备和链接的服务器 添加/更改/删除复制 添加/更改/删除维护计划 触摸任何不属于您的团队的数据库 任何可用于跟踪这些用户活动的工具的指针将不胜感激。
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.