标签: sql-server

如何使用 PowerShell 在 SSMS 中执行 SQL Server 查询

我的本地机器中有一个脚本文件。我必须打开 SSMS 并在 SSMS 中打开查询并执行查询。

为了打开 SSMS 和查询,我使用了以下 PowerShell 脚本来完成它。

ssms.exe 'E:\PowerShell_PROD\Screenshot\ServerDetails.sql' -E -S localhost
Run Code Online (Sandbox Code Playgroud)

如何使用 PowerShell 运行此查询以及如何关闭此查询窗口?

我这样做的原因是我必须获取 SQL Server 属性和其他信息的证据。为此,我有一个 PowerShell 脚本来捕获屏幕截图。

我正在准备 PowerShell 脚本,该脚本在 SSMS 中运行每个查询并捕获结果并保存到指定路径。现在可以在 SSMS 中打开查询并捕获屏幕截图,但我无法运行查询。

sql-server powershell

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

在 SSMS 中隐藏用户无权访问的所有数据库而不使它们成为 db_owner

我正在努力使测试用户只能看到他有权访问的数据库。目前,用户只能看到他有权访问的一个数据库,但他现在db_owner是那个数据库的。我不认为测试用户应该是,db_owner因为这使他可以访问数据库中的所有内容。从我在网上找到的文章来看,这似乎是使用户只能看到单个数据库的唯一方法。当我使用时,DENY VIEW ANY DATABASE TO [user]他在服务器中看不到任何数据库,包括我已授予显式查看权限的数据库。有没有办法让他只查看单个数据库而不给他db_owner特权?

我引用的文章在这里

sql-server permissions

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

SQL 初学者,需要帮助解决 WHERE 语法错误

我在使用 sql 查询时遇到问题,该查询应该查找至少出版了一本价格为 13 美元或更高的书的作者。只要作者至少出版了一本价格在 13 美元或以上的书,IT 就应该显示名字和姓氏,按姓氏排序。以下是我到目前为止的查询:

SELECT authors.au_fname, authors.au_lname, titles.price  
FROM authors, titles  ORDER BY au_lname ASC 
WHERE titles.price > "13";
Run Code Online (Sandbox Code Playgroud)

第一张图显示了数据库的第一个表作者,第二张图显示了包含价格列的标题。 图 1

图片2

我究竟做错了什么?我无法弄清楚我的语法有什么问题。

谢谢!

sql-server where

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

SQL 性能 - 一个计数器来统治它们 - 识别 CPU/MEM/DISK/NET 压力

作为一名 DBA,我已经对 SQL 服务器进行性能调优多年。

我正在尝试创建一个快餐版的性能指标,它可以快速(在 5 分钟内)和准确(可证明)回答来自管理层的问题“此服务器需要更多/更快 _ 吗?”

“_”是 IT 堆栈自下而上的这 4 个可能的瓶颈之一(从服务器的角度来看,无需进入应用程序/代码/用户界面):

  1. 网络

  2. 磁盘

  3. 记忆

  4. 中央处理器

有数以千计的柜台、文章、产品可以帮助监控这些。但是是否有一个简单、即时和准确的脚本可以确定这 4 个中的任何一个是否需要扩大或缩小?

例如 sys.dm_os_wait_stats - SOS_SCHEDULER_YIELD 具有高信号等待 => 需要更多或更快的 CPU。
PAGEIO_LATCH => 需要更多文件或更快的磁盘

这2个准确吗?Page Life Expectancy 是否准确地“证明”了需要更多内存?您用于诊断性能问题的GO-TO脚本是什么?

我使用过 sp_whoisactive、sp_blitz、Glenn 的 DMV、Spotlight、Idera 等,但我还没有遇到一个脚本可以满足 CIO 关于在哪里花费预算资金的问题,或者将问题正确归咎于错误代码,或者速度缓慢SAN 或 ISP。

每当任何(网络/系统/DBA/应用程序)工程师指责另一个团队时,我们都必须“证明”我们的陈述,而有了虚拟化和云,没有理想的测试环境,没有停机时间,越来越难以证明地精确定位服务器性能问题的根源,可能是任务管理器以外的<请原谅咆哮>

performance sql-server

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

如何恢复缺少 .mdf 文件的数据库?

我有一个数据库,当我分离它时,我找不到它的.mdf文件。我的文件夹中只有.ndf.ldf文件DATA。另外,我没有备份文件...

  • 如何恢复我的数据库?
  • 我可以在没有.mdf文件的情况下做些什么吗?

PS 在这台服务器上,我有更多的数据库,而且大多数都有.mdf文件。只有少数人丢失了他们的.mdf文件。这是为什么?

sql-server

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

如何获得部分计数的总数

这里是这个问题的扩展,我怎样才能获取所有达到允许缺席人数上限的学生的人数。

我试过这个

SELECT COUNT(*) FROM
(
SELECT student_id,
       COUNT(attendance)
FROM   student_attendance
WHERE  attendance = 'ABSENT'
GROUP  BY student_id
HAVING COUNT(attendance) = (SELECT max_allowed
                            FROM   configurations)
) abc
Run Code Online (Sandbox Code Playgroud)

但它不起作用并出现此错误:

未为“abc”的第 2 列指定任何列。

环境: SQL Server 2000

sql-server sql-server-2000

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

记录所有 SQL Server 查询及其持续时间

有没有办法记录在某个服务器上执行的所有 Microsoft SQL Server 查询及其各自的持续时间?

我希望能够像PGBADGER为 PostgreSQL所做的那样,分析所有查询。当我们在做的时候:你知道任何这样的工具吗?

monitoring sql-server audit

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

检查异步运行的数据库恢复进度

我有一个使用SqlRestoreAsync方法恢复数据库的 Powershell 脚本。

我有一个大小适中的数据库,我正在恢复(~55Gb),我正在尝试查找恢复过程的进度。

我知道,如果我通过 T-SQL 命令运行恢复,那么我可以通过查询一些 DMV 或使用以下查询来查看恢复的进度:

SELECT r.session_id
    , r.command
    , CONVERT(NUMERIC(6, 2), r.percent_complete) AS [Percent Complete]
    , CONVERT(VARCHAR(20), DATEADD(ms, r.estimated_completion_time, GetDate()), 20) AS [ETA Completion Time]
    , CONVERT(NUMERIC(10, 2), r.total_elapsed_time / 1000.0 / 60.0) AS [Elapsed Min]
    , CONVERT(NUMERIC(10, 2), r.estimated_completion_time / 1000.0 / 60.0) AS [ETA Min]
    , CONVERT(NUMERIC(10, 2), r.estimated_completion_time / 1000.0 / 60.0 / 60.0) AS [ETA Hours]
    , CONVERT(VARCHAR(1000), (
            SELECT SUBSTRING(TEXT, r.statement_start_offset / 2, CASE 
                        WHEN r.statement_end_offset …
Run Code Online (Sandbox Code Playgroud)

sql-server powershell sql-server-2008-r2

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

平均值不起作用

我有一个不同报告周期的学生和成绩数据库。每个报告周期都有一个唯一的 ID,每个主题也有一个唯一的 ID。学生每个科目可以有不止一位老师,所以我需要平均给定的成绩,并只给出他们成绩的平均成绩。原始数据示例如下:

+--------------+------+-----+----+-------------+---+
| 223599152142 |   12 |  92 |  3 | Mathematics | 0 |
| 223599152142 |   12 |  92 |  3 | Mathematics | 3 |
| 223599152142 |   12 |  92 |  7 | History     | 3 |
| 223599152142 |   12 |  92 | 12 | Economics   | 3 |
| 223599152142 |   12 |  92 | 12 | Economics   | 4 |
| 223599152142 |   12 |  92 | 26 | Latin       | …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql cast decimal

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

与 select 碰撞时死锁杀死更新语句

在我最近的问题中.. 我注意到死锁会杀死更新语句而不是锁定在其中的选择命令。

SELECT 的隔离级别是数据库默认值,即读提交快照隔离。

SELECT 是我们 ETL 中事务的一部分。

sql-server

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