有人可以为我提供一些线索或解决方案来检索如下记录集吗?
注意:我阅读了 msdn 文档,但除了脱发之外别无他法:(
只是假设我有 2 个表通过 Rid 字段连接
表 1 列:
Rid, UserName, Hash
Run Code Online (Sandbox Code Playgroud)
表 2 列:
Rid, Phone, City, Email
Run Code Online (Sandbox Code Playgroud)
Table1并Table2通过Rid柱连接。
我想使用 xml 自动或 xml 显式或您在 SQL Server 2005 Express 中获得的任何 xml 操作来获得 xml 输出。
预期输出:
<UserDetails>
<Account>
<UserName>
</UserName>
<Hash>
</Hash>
</Account>
<Personal>
<Phone>
</Phone>
<City>
</City>
</Personal>
</UserDetails>
Run Code Online (Sandbox Code Playgroud)
@matt 请查看我在下面创建的程序。当您在开始时使用代码执行存储过程时,您就会知道我面临的问题
stack_getusers '<Request Type="GetUsers" CRUD="R">
<UserDetails>
<Rid></Rid>
</UserDetails>
</Request>'
CREATE PROCEDURE [dbo].[stack_getusers]
@doc NTEXT
AS
DECLARE @idoc INT
EXEC sp_xml_preparedocument @idoc OUTPUT, …Run Code Online (Sandbox Code Playgroud) 听说只能有一个聚集索引?我可能错了,但我确定我在某个地方读过。
在我的 SQL Server 2005 表之一中,我有以下列:
SerialNum ------- BigInt -------- 主键
区-------- nvarchar(50)
SchemeType ------ nvarchar(50)
当我使用 SQL Server Management Studio 在设计模式下打开表时,我注意到为District启用了聚集索引属性,而为SchemeType禁用了它。
如果只能有一个聚集索引,那么为什么在SerialNum已定义为主键的情况下,District 还要启用此属性?
如果可以有更多的聚集索引,那么如何为SchemeType列启用此属性?
我创建了一个 sql 数据库并用一些好的数据填充它。现在我试图将所有存储过程移到另一个数据库实例。我将整个源数据库(包括心爱的存储过程)导出到一个 .sql 文件中。现在我正在寻找一种方法来将该数据读入另一台计算机的 sql server 安装中。
到目前为止,我已经尝试通过 Visual Studio UI 查看提示,并使用 sqlcmd 和输入文件。将 sqlcmd 与 .sql 文件一起使用后,一些行受到影响,但它们没有显示在服务器资源管理器中。
如果我没有使用所有正确的术语,但我有将自己与 SQL Server 分离的数据库,请原谅我。在 SQL Server Management Studio 中,数据库旁边将缺少加号,或者数据库将没有表。
现在解决这个问题很容易,只需分离并附加数据库,我们就可以备份并运行了。但这是什么原因呢?
这对我来说不是个好日子。我有一个 SQL Server 2005 Express SP4 (v.9.0.500) 的备份 (master.bak),我想将其还原到我的主数据库实例。我在单用户模式下运行 SQL Server (sqlservr.exe -m),连接到实例,然后我执行任务...恢复。这是我得到的错误:
标题:Microsoft SQL Server Management Studio Express
服务器“GINO\SQLEXPRESS”的还原失败。(Microsoft.SqlServer.Express.Smo)
如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.2047.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Restore+Server&LinkId=20476
- - - - - - - - - - - - - - - 附加信息:
无法检索此请求的数据。(Microsoft.SqlServer.Express.SmoEnum)
如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
执行 Transact-SQL 语句或批处理时发生异常。(Microsoft.SqlServer.Express.ConnectionInfo)
从服务器接收结果时发生传输级错误。(提供程序:共享内存提供程序,错误:0 - 管道已结束。)(Microsoft SQL Server,错误:109)
如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=109&LinkId=20476
请帮我恢复我的备份数据库,以便我可以继续我的业务!
让我们假设我们有一个如下表:
PK -- nonclustered primary key
Col1 -- unique clustered
Col2
Col3
Run Code Online (Sandbox Code Playgroud)
这是指数:
nonclustered index on (Col2, Col3)
Run Code Online (Sandbox Code Playgroud)
与此索引的任何不同:
nonclustered index on (Col2, Col3) include (PK)
Run Code Online (Sandbox Code Playgroud)
如果我的 PK 是集群的而不是非集群的怎么办?现在它有所作为/没有有所作为吗?
编辑添加:
我想这是一种迂回的提问方式:非聚集索引的指针是基于聚集索引还是主键返回到表?我假设使用的是聚集索引 RID。
有没有办法以编程方式检索添加到表列和索引的每个 STATISTICS 的定义。对于用户添加的和系统创建的索引。Sql Server 添加了许多像“__WA_Sys_*”这样的统计信息。
我需要重新编写其中一些并添加更多内容,但是有太多内容无法使用 Management Studio 手动完成。
我想在 SQL Server 上使用 Service Broker 为我们的生产数据库设置一堆事件通知。
我在我的测试机器上设置了一个新数据库,一切正常。问题是我宁愿不必为此通知目的部署整个数据库,而且我不能使用一个已经到位的用户数据库(无论如何,这将是一团糟)。
如果可能,我最好将通知对象部署在 上master,但首先我想确定这实际上是一个好主意(如果确实如此)。
从网上书籍:
不要在 master 中创建用户对象。如果这样做,必须更频繁地备份 master。
Books Online建议我不要在master. 此外,我们已经master经常备份我们的数据库。
master在这种情况下,我应该使用数据库还是其他东西?
master在设置之前,我应该了解数据库、服务代理或事件通知吗?
sql-server-2005 sql-server sql-server-2008-r2 service-broker event-notification
我有一个相当大的事务数据库 (100GB),有很多用户。数据库访问完全通过存储过程进行,这些过程大量使用临时表、表变量、游标和其他有趣的东西。
我正在一个新盒子上试用它以提高性能。新盒子有 5 个独立的物理硬盘。我正在努力想出一个最佳设置(主要是虽然无知,但我通常是 ac# dev)。到目前为止,我得到了以下信息:
Drive C: OS, SQL install, TempDB log
Drive D: Database data
Drive E: Database log
Drive F: TempDB data
Drive G: Databases indexes
Run Code Online (Sandbox Code Playgroud)
我走的是正确的道路吗?有什么明显的错误吗?
目前,我有一个 SQL 2005 标准框。我想就地将其升级到 SQL 2012 Enterprise。当我说到位时,我指的是类似于 Office 2010 的安装,例如,它删除旧的 (Office 2007) 版本,将自身绑定到其前身曾经拥有的扩展并保留所有设置。
这可能吗?
如果不是,应该走什么程序?到目前为止,我得到了这个。
sql-server-2005 ×10
sql-server ×8
hardware ×1
index ×1
index-tuning ×1
performance ×1
ssms ×1
statistics ×1
upgrade ×1
xml ×1