Owned Schemas和之间有区别Role Members吗?
根据我的理解,这Role Members是强制性的 - 用户需要至少Role Members选中一个复选框。
然而,这Owned Schemas不是强制性的。这真的让我想知道为什么需要Owned Schemas在那里。

如何在SCHEMABINDING不重新创建视图的情况下关闭视图?
我有两个 SQL 代理作业,它们计划以不同的时间间隔运行。第一个作业每天运行一次完整备份。第二个作业每十五分钟运行一次事务日志备份。
随着数据库的增长,完整备份的时间比原计划的要长(即使有压缩)。我从我的日志中注意到事务日志备份现在同时运行。
我是否应该更改事务日志备份的计划,以便在运行完整备份时不运行?有关系吗?
我正在使用Dapper对来自 ASP.NET MVC 3 (.NET 4.0) 应用程序的 SQL Server 2008 R2 Express 实例执行以下查询。
INSERT INTO Customers (
Type, Name, Address, ContactName,
ContactNumber, ContactEmail, Supplier)
VALUES (
@Type, @Name, @Address, @ContactName,
@ContactNumber, @ContactEmail, @Supplier)
SELECT @@IDENTITY
Run Code Online (Sandbox Code Playgroud)
对 的调用connection.Query<int>(sql, ...)正在引发无效的强制转换异常。我已经调试了它,它是在 Dapper 调用GetValue返回的SqlDataReader.
的返回类型GetValue是Object,在调试器中检查它显示它是一个装箱十进制。
如果我将选择更改为SELECT CAST(@@IDENTITY as int),则 GetValue 的返回是一个装箱的 int 并且不会引发异常。
Id 列绝对是 int 类型;为什么会SELECT @@IDENTITY返回一个小数?
一些附加信息:
我正在分析 SQL Server 2005 的一个实例,通过 PerfMon 的SQLServer:SQL Statistics - SQL Compilations/sec指标,我看到平均值约为 170 左右。
我拿出 SQL Profiler 并寻找 SP:Compile 或 SQL:Compile 事件。显然它们不存在。我确实发现Stored Procedure/SP:Recompile和TSQL/SQL:StmtRecompile事件。我在 Profiler 中看到的数据量表明这些是错误的事件,尽管我不确定。
所以我的问题。对其中任何一个的回答都会很棒。
Stored Procedure/SP:Recompile和TSQL/SQL:StmtRecompile事件在SQL事件探查器,他们不包括持续时间度量。如果这些事件无法查看对系统的时序影响,我该如何衡量这些事件对系统的影响。我有以下过程(SQL Server 2008 R2):
create procedure usp_SaveCompanyUserData
@companyId bigint,
@userId bigint,
@dataTable tt_CoUserdata readonly
as
begin
set nocount, xact_abort on;
merge CompanyUser with (holdlock) as r
using (
select
@companyId as CompanyId,
@userId as UserId,
MyKey,
MyValue
from @dataTable) as newData
on r.CompanyId = newData.CompanyId
and r.UserId = newData.UserId
and r.MyKey = newData.MyKey
when not matched then
insert (CompanyId, UserId, MyKey, MyValue) values
(@companyId, @userId, newData.MyKey, newData.MyValue);
end;
Run Code Online (Sandbox Code Playgroud)
CompanyId、UserId、MyKey 构成目标表的组合键。CompanyId 是父表的外键。此外,还有一个非聚集索引CompanyId asc, UserId asc。
它是从许多不同的线程调用的,我一直在调用相同语句的不同进程之间出现死锁。我的理解是“with (holdlock)”对于防止插入/更新竞争条件错误是必要的。
我假设两个不同的线程在验证约束时以不同的顺序锁定行(或页面),因此是死锁。
这是一个正确的假设吗? …
SQL Server 日志文件查看器显示的消息:
Login failed for user [User]
Error: 18456, Severity: 14, State 38
Run Code Online (Sandbox Code Playgroud)
它实际上意味着什么:
Failed to open the explicitly specified database
Run Code Online (Sandbox Code Playgroud)
我的问题:
对于严重性和状态的每种组合,是否有 18456 错误(登录失败)的所有变体的列表,以及有用的描述文本?
我有一个谷歌,但除了特定的组合之外找不到任何东西。
我做得对吗……?
我有一个返回钱的函数...
CREATE FUNCTION functionName( @a_principal money, @a_from_date
datetime, @a_to_date datetime, @a_rate float ) RETURNS money AS BEGIN
DECLARE @v_dint money set @v_dint = computation_here
set @v_dint = round(@v_dint, 2)
RETURN @v_dint
END
GO
Grant execute on functionName to another_user
Go
Run Code Online (Sandbox Code Playgroud)
我只是想知道这是否可以转换为 iTVF?
我试过这样做,但出现错误:
CREATE FUNCTION functionName ( @a_principal money, @a_from_date
datetime, @a_to_date datetime, @a_rate float )
RETURNS TABLE AS
RETURN SELECT returnMoney = computation_here
GO
Grant execute on functionName to another_user Go
Run Code Online (Sandbox Code Playgroud)
错误:
消息 4606,级别 16,状态 1,第 2 行授予或撤销特权 …
我需要一些帮助来找出以下T-SQL语句返回的原因1(true):
SELECT IIF( 0 = '', 1, 0)
Run Code Online (Sandbox Code Playgroud)
我猜有人改变了一个ANSI选项,比如SET ANSI_NULLS导致这种行为的其他东西。
我的问题是我加入了一些值,在最后一行集中我有由0和''值连接的值,这是不正确的。
我正在接管一个项目,该项目涉及删除和限制我们服务器场中所有数据库用户的权限。(娱乐时间)
当前受限的权限之一是 db_owner 权限。
正在逐案审查此权限,但常见的更改是将 db_owner 权限替换为以下内容:
我想定义两者之间的确切区别(通知客户)。
但是,据我所知,两者之间的区别应该是:
所以实际上他们会失去:
[ALTER ANY USER]
[CREATE SCHEMA]
[BACKUP DATABASE], [BACKUP LOG], [CHECKPOINT]
[ALTER ANY APPLICATION ROLE],[ALTER ANY ROLE]
[DROP DATABASE]
一旦 db_owner 被上述四个角色取代,用户还有什么会丢失的吗?
这实际上在安全方面起到了很大的作用吗?
sql-server ×10
t-sql ×2
ado.net ×1
backup ×1
deadlock ×1
errors ×1
functions ×1
logins ×1
merge ×1
perfmon ×1
performance ×1
permissions ×1
role ×1
schema ×1
view ×1