Questions tagged «ssms»

SQL Server Management Studio,SQL Server附带的图形化前端工具,用于管理和查询数据库。它还支持管理其他捆绑系统,例如SSAS。





3
用户无法在SSMS中以非默认模式查看表
我在VIEW DEFINITION为一个用户的架构级别适当设置权限时遇到问题。我已经创建了架构TestSchema并添加了一些表。用户目前有权限设置为访问和修改表(SELECT,UPDATE,DELETE通过等)dbo_datareader和dbo_datawriter角色。但是,他们看不到SSMS对象资源管理器中的任何表。 我尝试授予查看定义的权限: grant view definition on SCHEMA :: [TestSchema] to [User] 那没用。我尝试设置表级权限: grant view definition on [TestSchema].[NewTable] to [User] 那也没有用。然后,我尝试了一项总括性赠款: grant view definition to [User] 那确实奏效了;他们现在可以看到TestSchema以及他们不应该访问的其他模式。 我的目标是允许用户查看给定架构中的所有表。我该怎么做?如果默认情况下我应该能够执行此操作,那么我应该查看哪些权限以查找为什么不能这样做?

2
提交事务之前查询数据
我的理解是,在MS SQL Server Management Studio窗口中,执行“开始事务”然后进行一些更改(如将数据添加到表中)之后,您只能从同一窗口查询该表和那些更改,直到执行“提交交易”。 在执行“提交事务”之前,有什么方法可以从另一个来源进行查询吗? 具体到我当前的目标并添加一些上下文。我从Excel Power Query进行一些SQL查询。我真的很想能够在“提交事务”之前执行这些查询,以便我可以进行一些分析并弄清楚是否应该执行回滚而不是提交。


2
连接到本地主机时,SMO,SSMS对于在Docker中管理SQL Server的速度很慢
TL; DR:当通过可解析为IPv6环回(::1)的名称连接到我的SQL Server Docker容器时,SMO调用确实很慢。使用时127.0.0.1,速度很快。 我正在尝试学习如何使用Docker镜像microsoft / mssql-server-windows-developer。根据Microsoft的文档,此容器仅公开端口1433 TCP。 docker run -d -p 1433:1433 -e sa_password=Passw0rd! -e ACCEPT_EULA=Y -v C:\dockerdb:C:\dockerdb microsoft/mssql-server-windows-developer 我正在Windows 10上运行该容器,并且已成功启动该容器,使用SQL Server身份验证进行身份验证,并在Windows主机上使用sqlcmd和SSMS 17.4对实例运行查询(连接到localhost或“。”),以及SQL操作通过IP连接的隔壁Mac上的Studio。这样运行查询时,我看不到任何明显的性能问题。 在SSMS中,我也可以浏览对象资源管理器,但是如果尝试从对象资源管理器中的对象的右键菜单上执行某些操作,例如打开实例参数窗口或附加数据库,则SSMS不会显示约5的响应-10分钟,此时它要么显示我要的窗口,要么显示以下错误消息: 我还尝试使用SMO Scripter对象针对此实例进行一些PowerShell脚本编写,并看到相同的行为。PS脚本循环遍历数据库中的对象并将其脚本化为文件,并且可以相对较快地收集对象列表,但是每个单独的对象需要5-10分钟的时间来编写脚本-太慢了,无法使用。 我有一个预感,即单个暴露的端口还不够,SMO和SSMS试图以类似的方式进行连接,这会使它们变慢。难道是当连接到本地主机时,这些工具是否假定存在其他通常不会进行防火墙保护的通信通道?我可以使用其他任何连接参数吗?谁能验证我关于SSMS正在使用SMO或其他与SQL Server通信的假设? 更新:我仍在调查,但这似乎是围绕资源限制的Docker问题。这很令人困惑,因为大多数文档似乎都表明Windows容器没有任何默认资源限制(并且不能在Docker for Windows GUI中设置这些默认资源限制- 仅对于Linux容器),但是实际上,Windows在Windows 10上运行的容器的默认RAM分配为1GB。我仍在尝试找出如何检查正在运行的容器以查看其RAM和CPU分配的方法,但是接下来我必须尝试使用docker run参数从默认值中增加这些值。 进一步更新:我一直无法从docker获得任何可靠的指标,该指标可以告诉我该容器对CPU和内存的限制。各种研究表明,docker容器默认没有内存限制,或者它们有1GB,但是我目前只能验证的是,docker stats该SQL容器仅使用 750到850兆之间,何时我尝试添加一个运行参数来将可用内存设置为4 GB,但出现错误。因此,我不再关注该查询线程,而是进行了另一项肠道检查:在正在运行的容器上进入交互式Powershell会话,然后从容器内部调用上面链接的Powershell脚本。 在容器内运行没有问题。它在短短几分钟内就烧穿了2780个物体。我认为这可以确认问题出在容器/主机边界上,因此我将看看是否可以打开该UDP端口。更新:打开端口1434 UDP没有帮助。 更多更新-已解决,而不是资源约束问题:似乎与为Windows容器设置大的内存分配有关的问题 -我在3g和2g上收到类似的错误,但最终能够从1.5g启动该容器,并且我发现docker stats容器的差异(我认为)证实了容器运行时的默认分配为1GB。在默认设置下,PRIV WORKING SET stat(我找不到任何文档,但我最大的猜测是它的RAM)在700MiB和850MiB之间。用docker run —memory="1.5g"设置,大约是1.0GiB。因此,它的确扩大了,但似乎腾出了比以前更多的分配空间。我将此解释(可能是错误地)是指该服务器(绝对没有负载运行并且没有用户数据库)没有内存压力。我检查了最大服务器内存设置,以确认它设置为默认的最大2PiB。 …


1
mdf和ldf的可用空间与数据库的可用空间不匹配
在SSMS中,我看到了文件大小相关的属性,并在下面找到了一个数据库的详细信息。此处的值与其他属性不匹配。此处mdf,ldf的大小和总大小与每个窗口下的其他值匹配。但是,如果添加了mdf和ldf的可用空间,则它不等于收缩数据库窗口中显示的可用空间和数据库属性中显示的可用空间。对于任何数据库都是如此。为什么会这样呢?请任何人解释这背后的逻辑? 在数据库属性下: 大小:91.31 MB 可用空间:13.40 MB 在数据库文件属性下: mdf大小:17 MB ldf大小:75 MB 在收缩数据库下: 当前分配的大小:91.31 MB 可用空间:13.40 MB 在收缩文件下,用于数据文件: 当前分配的大小:16.38 MB 可用空间:12.63 MB 在收缩文件下-用于日志文件: 当前分配的大小:74.94 MB 可用空间:55.62 MB

1
在SQLCMD中执行从SSMS生成的TSQL脚本。报价失败
我正在尝试通过执行SQL Server Management Studio中“生成脚本”工具生成的脚本来将数据库部署到计算机上。 这是我发出的命令: sqlcmd -S LOCALHOST\sqlexpress -I -U user -P ******** -i C:\Rollouts\NI-9-25-2012_10-42-AM\Rollout.sql > rolloutlog.txt 我收到这样的错误: Sqlcmd:错误:文件'C:\ Rollouts \ NI-9-25-2012_10-42-AM \ Rollout.sql'中命令'''附近第39488行的语法错误。 当我使用文本编辑器查看此行时,所有符号都指向带引号的问题。 有问题的行如下所示: $(''。cat-menu-new'')。slideDown(''slow''); 是否应该执行或生成脚本以支持脚本中的引号的开关?


1
如何获得准确的查询性能?
我正在尝试提高存储过程的性能。当我运行SP时,它几乎立即完成,就好像已缓存了某些内容一样。有人告诉我在SSMS中执行SP之前,请使用以下两行SQL: DBCC DROPCLEANBUFFERS DBCC FREEPROCCACHE 当我使用上面两行代码运行SP时,大约需要8秒钟。但是,这是否真的给了我真正的执行时间(就像我从应用程序中运行一样)?我怎么知道?

4
Windows用户创建表时,SQL 2008 R2创建用户/架构
我们添加了服务器登录名和数据库用户,该用户使用以下脚本将Windows组映射到SQL 2008 R2实例,并更改了名称以实现匿名: USE master go CREATE LOGIN [DOMAIN\AppUsers] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english] go USE AppDb go CREATE USER [DOMAIN\AppUsers] FOR LOGIN [DOMAIN\AppUsers] go EXEC sp_addrolemember N'db_owner', N'DOMAIN\AppUsers' go 当DOMAIN \ User1帐户登录到应用程序时,User1可以在dbo模式中查询表,因为User1是DOMAIN \ AppUsers的成员,但是此应用程序也允许用户创建表。在不指定架构的情况下创建这些表时,SQL Server会执行以下操作: 在AppDb中创建一个“ DOMAIN \ User1”用户,该用户使用该实例的SSMS \ Security \ Logins中未列出的“ DOMAIN \ User1”登录名。 在AppDb中创建一个“ DOMAIN \ …

3
在Management Studio T-SQL查询中指定连接
当将用户添加为数据库服务器的角色时,我经常使用GUI中的“为此操作编写脚本”功能。然后,我只需转到“连接::更改连接”即可在其他服务器上执行相同的操作。 有没有一种方法可以在脚本操作中指定连接,因此不必执行第二个“更改连接”步骤?

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.