我正在 Azure MSSQL 包含的数据库中设置新用户。
我希望新用户在第一次登录时被强制重置密码。
我看到设置新密码的能力记录在https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-user-transact-sql?view=sql-server-ver15但我做到了看不到强制重置的能力。
有任何想法吗?
我正在 Azure MSSQL 包含的数据库中设置新用户。
我希望新用户在第一次登录时被强制重置密码。
我看到设置新密码的能力记录在https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-user-transact-sql?view=sql-server-ver15但我做到了看不到强制重置的能力。
有任何想法吗?
命名表和视图时应该遵循什么标准?例如,将 tbl_ 之类的内容放在表名的开头是否是个好主意?我是否应该以 ct_、lut_ 或 code_ 之类的方式指定代码/查找表?还有其他的做/不做吗?
我正在使用 MS SQL Server 并且有许多数据库和许多表,所以如果有一些我们可以用作标准的东西并带有一些支持理性,那就太好了。
关于为什么向此查询添加排序返回比没有排序要快得多的任何想法?我会期待相反的结果,那么什么会导致这种情况发生?
SELECT TOP (500) r.cID,r.aField,a.Description
FROM dbo.tblR r
inner join dbo.tblA a on r.aID = a.ID
left join dbo.tblX x on x.cID = r.cID
WHERE (ISNULL(x.anotherField,'') <> r.anotherField or x.field3 is null)
and (r.ID=(select max(ID) from tblR where cID = r.cID and
ISNULL(aField,'') <> ''))
and r.cID in (select ID from tblC)
ORDER BY r.cID ASC -- when I comment this line out it runs much slower
执行计划没有多大帮助。
我只是在了解 MS SQL 2008 中的新过滤索引,我正试图了解它们会在哪些方面造成伤害以及在哪些方面有所帮助。
我可以看到,向员工表添加过滤索引以仅索引当前员工是个好主意。
但是如何根据时间将几个过滤索引应用到一个大表呢?例如,假设我有一个包含 enteredOn 日期/时间字段的表,并且该表包含多年的数据。如果查询通常是基于日期和其他一些字段(例如 enterby)完成的,那么使用一些具有 where 子句将索引限制为时间跨度的过滤索引是否会很好?在我的示例中,查询类似于
select enteredOn, Description, ...
from myTable
where enteredOn > '2011/01/01' and enteredBy = "My, User"
每年都有一个过滤索引是否合理,或者当查询以下内容时会导致很多问题?
select enteredOn, Description, ...
from myTable
where enteredOn > '2009/06/01' and eneteredOn < '2010/06/01' and enteredBy = "My, User"
你怎么知道一个索引应该有多少“填充”?
将数据库更改从开发环境迁移到 QA 到生产环境的好方法是什么?目前我们:
问题在于它非常手动。它依赖于开发人员记得附加 sql 或如果开发人员忘记了同行评审员来获取它。有时,最终是发现问题的测试人员或 QA 部署人员。
第二个问题是,如果两个单独的任务更改同一个数据库对象,您有时最终需要手动协调更改。这可能就是这样,但似乎仍然应该有一些自动化的方式来“标记”这些问题或其他东西。
我们的设置:我们的开发商店里到处都是具有丰富数据库经验的开发人员。我们的项目非常面向数据库。我们主要是一个 .NET 和 MS SQL 商店。目前我们正在使用 MS TFS 工作项来跟踪我们的工作。这对于代码更改很方便,因为它将更改集链接到工作项,因此我可以准确找出在迁移到 QA 和生产环境时需要包括哪些更改。我们目前没有使用数据库项目,但将来可能会切换到该项目(也许这是答案的一部分)。
我非常习惯我的源代码控制系统为我处理这样的事情,并希望我的 SQL 也有同样的事情。