注意:我不是 dba。:)
我有一个客户端需要设置列的默认值的数据库表。此表中有 150 万条以上的记录,并且此列已填充到所有现有记录中(他们现在手动执行此操作)。他们希望在其用户创建的所有新记录上自动设置此列。
在工作时间内设置此列的默认值是否会导致停机或任何重大延迟问题?
我有一个脚本来获取当前正在运行的作业:
-- get the running jobs
--marcelo miorelli
-- 10-dec-2013
SELECT sj.name
,DATEDIFF(SECOND,aj.start_execution_date,GetDate()) AS Seconds
FROM msdb..sysjobactivity aj
JOIN msdb..sysjobs sj on sj.job_id = aj.job_id
WHERE aj.stop_execution_date IS NULL -- job hasn't stopped running
AND aj.start_execution_date IS NOT NULL -- job is currently running
--AND sj.name = 'JobName'
and not exists( -- make sure this is the most recent run
select 1
from msdb..sysjobactivity new
where new.job_id = aj.job_id
and new.start_execution_date > aj.start_execution_date )
Run Code Online (Sandbox Code Playgroud)
当我在我的服务器上运行它时,它说当前没有正在运行的作业,但是,当我查看作业活动监视器时,我看到了下图。
此作业的第二步是使用代理运行 powershell 脚本。 你可以在这里看到第二步。 …
sql-server powershell sql-server-2012 jobs maintenance-plans
我正在使用一个 Excel 文件,该文件具有不同格式的日期,但是当我尝试将其转换或将其转换为 SQL DATETIME 时,其中一种格式给我带来了一些痛苦。例如:
Thu Oct 16 13:40:19 2014,Tue Apr 1 12:20:40 2014等等。
基本上格式是ddd MM dd HH:mm:ss yyyy.
我想知道是否有某种日期样式可以让我在一行中进行转换。我可以为此编写一个函数,但我想知道是否有更优雅的解决方案。我谷歌搜索没有运气。
如果我在 SQL Server 2012 SP1 中应用累积更新 3,在应用 CU 3 之前是否还需要执行累积更新 1 和 2?而且,您如何知道 SQL Server 中已经应用了哪些 CU 或修补程序?
我的任务是将 SQL Server 2012 从 SP3 之前的版本 (11.0.5623.0) 一直更新到 SP3 CU2。我可以在没有重新启动之前安装这两个补丁吗?我在谷歌上找到的所有文件都表明只有在文件被锁定时才需要重新启动。
我是 SQL、SQL Server 2012 和 SQL 数据库的新手。我已经为我创建了一个示例数据库,我想将其导入到我的 SQL Server 中。

我注意到它也有一个 Books_log。它是什么?(我感谢您的回答,但不是我的主要问题)。
我尝试使用 SQL Server Management Studio 导入它。我创建了一个新数据库,然后右键单击它并选择任务,然后选择导入数据,然后打开导入和导出向导,然后我给了它我最好的猜测并选择平面文件源作为我的数据源,然后我单击浏览并选择 Books.mdf 数据库。然后在这一点上,我觉得有些不对劲,因为当我移动到“列”或“预览”选项卡时,它是这样的:

无论如何,我点击了下一步。我选择 SqlServer 的 .Net 框架数据提供程序作为我的目标。然后点击下一步,这就是我得到的:

我究竟做错了什么?
我以非常模糊的方式提出问题,因为我无法用简短的句子解释我的问题是什么。
一般来说,我有一组转换文本和 XML 的过程。里面的程序,我有很多NVARCHAR和XML变量与表XML列。在我的数据中,我有特殊的字母(例如ò)。当我运行所有代码时,特殊字符消失并显示为?- 这意味着我得到了VARCHAR而不是NVARCHAR.
总的来说,我一切都好,直到最后的步骤。我得到了EXEC哪个调用存储过程具有类型为临时构造的变量NVARCHAR。我有一个包含XML字段的表。在这种情况下,我得到了?. 如果我手动运行程序(不在 中EXEC INTO),我会得到正确的符号。
任何想法为什么会发生这种情况?我检查了所有变量,它们是NVARCHAR.
我试图确定用户所描述的应用程序性能缓慢。我有一种预感,它可能与应用程序本身有关,而不是 SQL 服务器的问题。我已经检查了许多常见的疑点,以确定常见的瓶颈。
MS SQL 服务器 (11.0.5058) 在 Hyper-V, 2012r2 上运行,并为来宾分配了以下内容:72GB 内存、16 个处理器、4 个带有 tempDB、OS、DB、程序文件的磁盘控制器,它们都在单独的 VHD 上。
在一天中运行 perfmon
% 处理器时间< 40% 最大值
平均磁盘 Q 长度0.003 平均 - 0.41 最大值
% 磁盘时间平均0.0038
平均可用字节数5010
缓冲区高速缓存命中率99.996 平均 98.614 分钟
我没有看到磁盘、内存或处理器有任何问题。我接下来应该看哪里?
这是创建新列并保留旧日期时间的最简单方法?使用格式?
来自日期时间列“2018-05-15 09:45:00.000”的结果如 201805、201806 或 1805、1806 等
我们目前在固态驱动器上有 tempdb(8 个文件)。
我们知道建议主 mdf 和事务日志 ndf 位于不同的驱动器上,以减少争用。tempdb 文件应该在不同的驱动器上以保持一致的原则,还是可以都在同一个驱动器上?
以下文章指出它们都在同一个驱动器上,但正在寻找背景技术解释。 对多个 tempdb 文件的建议
ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdev2', FILENAME = N'G:\tempdb2.ndf' , SIZE = 12288000KB , MAXSIZE = UNLIMITED, FILEGROWTH = 0 )
GO
ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdev3', FILENAME = N'G:\tempdb3.ndf' , SIZE = 12288000KB , MAXSIZE = UNLIMITED, FILEGROWTH = 0 )
....
Run Code Online (Sandbox Code Playgroud) performance sql-server sql-server-2012 tempdb performance-tuning
sql-server-2012 ×10
sql-server ×7
patching ×2
performance ×2
cast ×1
datetime ×1
dynamic-sql ×1
jobs ×1
powershell ×1
ssms ×1
t-sql ×1
tempdb ×1
unicode ×1
xml ×1