【问题标题】:T-SQL Script to get tempDB location that will return True or False用于获取将返回 True 或 False 的 tempDB 位置的 T-SQL 脚本
【发布时间】:2017-03-14 16:24:16
【问题描述】:

我正在制作一个自动化脚本来将 tempDB 文件移动到另一个磁盘。我正在使用 DSC(带有 xSQLServerScript 模块)来确保跨多个服务器的环境一致。为了不接触已经在正确位置具有 tempDB 的服务器,我需要引用一个仅返回 True 或 False 值的脚本。由于我是 SQL 菜鸟,如果有人能提供此类脚本的示例,我将不胜感激。 如果这有什么不同的话,那就是我用来移动 tempDB 文件的 T-SQL 脚本:

Alter database tempdb modify file (name = tempdev, filename = 'D:\Sqldata\tempdb.mdf', SIZE = 1000MB, MAXSIZE = UNLIMITED, FILEGROWTH = 20%)
Alter database tempdb modify file (name = templog, filename = 'D:\Sqldata\templog.ldf', SIZE = 100MB, MAXSIZE = UNLIMITED, FILEGROWTH = 20%)

【问题讨论】:

  • 我不明白这里的问题。您是否要查询数据库以查找 tempdb 文件的位置?您可以使用此查询查看 tempdb 文件的位置。从 tempdb.sys.sysfiles 中选择文件名
  • 是的,这就是我需要的。但如果 tempDB 位于磁盘 D 上,我需要查询结果返回“True”,如果它位于默认位置,则返回“False”。
  • 你可以在 D 上保存一个文件,在 E 上保存另一个文件。

标签: sql-server dsc


【解决方案1】:

有点不清楚你想要什么,但认为你想知道 tempdb 的所有文件是否都位于 D 驱动器上。因为我不太关心代表真/假的字符串,所以我在这里使用位数据类型。对于任何非空且非 0 的值,位数据类型将转换为 1。

select convert(bit, COUNT(*))
from tempdb.sys.sysfiles
where left(filename, 1) = 'D'

【讨论】:

  • 在更彻底地阅读了 DSC 模块的文档后,我使用了 xSQLServerScript,结果发现我实际上需要 0 或 1。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2019-09-21
  • 1970-01-01
  • 1970-01-01
  • 2011-01-17
  • 2013-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多