我刚刚了解了新的 sp_executesql 存储过程。我喜欢有一种方法可以从 SQL Server 中执行参数化代码。
但是,我想知道在没有任何参数时使用 sp_executesql 存储过程与直接调用 EXEC 之间有什么区别。另外,是否有性能影响?
exec('select * from line_segment')
exec sp_executesql N'select * from line_segment'
Run Code Online (Sandbox Code Playgroud)
另外,2005 年和 2008 年之间是否存在差异,或者它们的处理方式是否相同?
我正在 SQL Server Management Studio 中针对我的 SQL Server 2008 R2 Express Edition 实例。我试图了解权限是如何工作的。
我能看到的是(通过许多这些实体的属性)
然而,在那一点上,小路变冷了。架构 db_datawriter 在其属性下有一个空白的权限页面。
什么精确定义了架构 db_datawriter 的权限是什么?
我正在尝试找到一种使用 HierarchyID 获取给定节点的所有祖先节点的方法。我见过的每个使用 HierarchyID 的解决方案似乎都使用 CTE 或变量。有没有办法使用单个 select 语句来做到这一点?
为了让事情更简单:
CREATE TABLE Employee
(
EmpId INT PRIMARY KEY IDENTITY,
EmpName VARCHAR(100) NOT NULL,
Position HierarchyID NOT NULL
)
INSERT INTO Employee (EmpName, Position)
VALUES ('CEO', '/'),
('COO', '/1/'),
('CIO', '/2/'),
('CFO', '/3/'),
('VP Financing', '/3/1/'),
('Accounts Receivable', '/3/1/1/'),
('Accountant 1', '/3/1/1/1/'),
('Accountant 2', '/3/1/1/2/'),
('Accountant 3', '/3/1/1/3/'),
('Accounts Payable', '/3/1/2/'),
('Accountant 4', '/3/1/2/1/'),
('Accountant 5', '/3/1/2/2/'),
('DBA', '/2/1/'),
('VP of Operations', '/1/1/')
Run Code Online (Sandbox Code Playgroud) 当数据库开始一个事务时,在该事务中执行的所有语句都是孤立的和原子的(一致和持久的)。这些几乎是交易的定义。
维基百科指出,有一些数据库通过锁定行并在事务提交之前不解锁它们来确保事务保持隔离。
我的问题是:完全依赖锁的数据库如何保证一致性?如果在事务中间发生断电,则可能会有部分数据写入该行。
即使对于像 SQL Server 这样使用临时数据库来执行所有事务的数据库,如果在数据库将事务提交到磁盘时发生断电,会发生什么?
数据是否已损坏或数据库是否正确处理?
好的,完全是新手问题。
究竟什么是“Oracle 上的 SAP”。 这个链接谈论的是 SAP 如何在 Oracle 上运行(我认为)。
我不明白这是如何工作的。
我的理解:
SAP是一家提供ERP的公司
Oracle 是一个数据库系统。
我以为他们是竞争对手!那么,SAP on Oracle 是否在 Oracle 上运行 ERP 系统?这里运行的是什么,在这种情况下 DBA 会支持什么?(或者这甚至是 DBA 领域?)
我这么问是因为我申请了一份更喜欢“SAP”经验的工作,我在谷歌搜索中遇到了这个“SAP on Oracle”。
我正在阅读非统一内存访问 (NUMA),我想知道它到底能带来多大的不同?换句话说,在这变得有益之前需要什么水平的吞吐量?
此外,当您想要一个具有多个系统总线的系统时,您需要寻找什么类型的服务器?
我知道这些字母表示提取、转换和加载。
但是,当我一开始使用它时,我认为在转换阶段我可以对从数据源中提取的数据进行大量不同的连接,后来我意识到在不同的 ETL 上进行连接并不是那么方便.
谢谢
当我查看SQL Server 上的DATEDIFF()函数时,我发现它采用datepart作为其第一个参数。
可能的日期部分值包括day和dayofyear。
据我了解,dayofyear是一年中的第几天(例如,2 月 2 日是 33),day是该月的第几天(因此 2 月 2 日是 2)。但是,我不明白 DATEDIFF 函数的区别。
这里有些例子:
select DATEDIFF(dayofyear, '2012-01-01', '2012-02-02')
returns: 32
select DATEDIFF(day, '2012-01-01', '2012-02-02')
returns: 32
select DATEDIFF(dayofyear, '2011-02-01', '2012-02-02')
returns: 366
select DATEDIFF(day, '2011-02-01', '2012-02-02')
returns 366
Run Code Online (Sandbox Code Playgroud)
对于 DATEDIFF() 而言,dayofyear和day是否等效?
我在集群环境中有一台旧的 SQL Server 2000 机器。数据文件位于磁盘 S: 上,磁盘空间不足。我有另一个磁盘 B: 在有很多空间的同一个磁盘阵列中。我希望 SQL Server 使用磁盘 B: 而不是磁盘 S:
如何设置 SQL Server 将数据文件存储在磁盘 B 上?
任何帮助将不胜感激。
谢谢。
受到 StackOverflow 问题的启发(为什么 SQL 不支持“= null”而不是“is null”?)。
是否有实际支持= NULL语法的 DBMS ?
sql-server ×5
t-sql ×3
security ×2
etl ×1
numa ×1
oracle ×1
performance ×1
sap ×1
transaction ×1