我们已升级到 SQL 2012 并尝试将我们的 Dbs 反向工程到 Visio 2010。我使用 SQL 11 驱动程序设置了连接,而 Visio 抱怨不支持该驱动程序。
有人遇到过这个吗?
考虑以下简单的 XML:
<xml>
<customer name="Max">
<email address="me@you.com" />
</customer>
<customer name="Erik">
<email address="erik@your-mom.com" />
</customer>
<customer name="Brent">
<email address="brentcom" />
</customer>
</xml>
Run Code Online (Sandbox Code Playgroud)
我想要得到的名单<Customer>,其中序列address中的属性<email>项并没有包含@。
所以,我希望输出看起来像:
<customer name="Brent">
<email address="brentcom" />
</customer>
Run Code Online (Sandbox Code Playgroud)
麦克维:
DECLARE @x XML = '<xml>
<customer name="Max"><email address="me@you.com" /></customer>
<customer name="Erik"><email address="erik@your-mom.com" /></customer>
<customer name="Brent"><email address="brentcom" /></customer>
</xml>';
Run Code Online (Sandbox Code Playgroud)
这个查询:
SELECT WithValidEmail = @x.query('/xml/customer/email[contains(@address, "@")]')
, WithInvalidEmail = @x.query('/xml/customer/email[contains(@address, "@")] = False');
Run Code Online (Sandbox Code Playgroud)
返回:
????????????????????????????????????????????????????????????
? WithValidEmail ? WithInvalidEmail ? …Run Code Online (Sandbox Code Playgroud) 有什么方法可以使用 phpMyAdmin 生成我的数据库结构报告?我想要的是如下表格式和实体关系表。
Table name: List
Description: Subscriber list information
Field Type Null Description
ListID Int N
ListName Varchar N
ListFromName Varchar N Default person represent for the mail
ListReplyTo Varchar N Default return address
ListSubject Varchar N Default subject title of mail
ListRemindSub Int N Whether notify when people subscribe
ListRemindUnSub Int N Whether notify when people unsubscribe
ListCreateDate Date N
Table name: Campaign
Description: Mail campaign information
Field Type Null Description
CampID Int N
CampReplyTo Varchar N Specific …Run Code Online (Sandbox Code Playgroud) 我的高级 DBA 告诉我,默认情况下 SQL 查询执行不会锁定表。
我的 SQL Server Reporting Services (SSRS) 报告出现了一些问题,似乎在锁定和出现一些错误方面遇到了一些问题。
我做了一些谷歌搜索,但没有找到任何东西。
SSRS 报告是否锁定正在查询的表?
是否有任何 MSDN 文档专门记录了这种行为?
是否有任何内置方法将 Oracle 数据库角色映射到 Microsoft Active Directory 组?
我试图通过执行 SQL Server Management Studio 中的“生成脚本”工具生成的脚本将数据库部署到机器上。
这是我发出的命令:
sqlcmd -S LOCALHOST\sqlexpress -I -U user -P ******** -i
C:\Rollouts\NI-9-25-2012_10-42-AM\Rollout.sql > rolloutlog.txt
Run Code Online (Sandbox Code Playgroud)
我收到这样的错误:
Sqlcmd: 错误: 文件'C:\Rollouts\ NI-9-25-2012_10-42-AM\Rollout.sql'中命令'''附近的第39488行语法错误。
当我使用文本编辑器查看此行时,所有迹象都指向一个带引号的问题。
有问题的行看起来像这样:
$(''.cat-menu-new'').slideDown(''慢'');
是否有我应该执行或生成脚本以支持脚本中的引号的开关?
由于 InnoDB 的一些问题,我将所有数据库转储到新服务器:
mysqldump -E -R --all-databases | pv -b | mysql -u root -p -h new.server
Run Code Online (Sandbox Code Playgroud)
转储过程因错误而停止:
59.9kB assword: 59.9kB
ERROR 145 (HY000) at line 2970: Table './mysql/proc' is marked as crashed and should
be repaired
228MB
mysqldump: Got errno 32 on write
Run Code Online (Sandbox Code Playgroud)
我运行了以下命令来修复所有数据库中的所有表:
mysqlcheck --auto-repair --all-databases
Run Code Online (Sandbox Code Playgroud)
当我检查mysql.proc状态时,我得到:
mysql> check table mysql.proc;
+------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------+-------+----------+----------+
| mysql.proc | check | status | OK |
+------------+-------+----------+----------+
1 row in set …Run Code Online (Sandbox Code Playgroud) 我有一个指向链接服务器的存储过程。在整个过程中的几个地方,我得到了如下内容:
INSERT INTO [TableName]
(...Columns...)
SELECT ...Columns...
FROM [ServerName\InstanceName].[Catalogue].[dbo].[TableName]
WHERE TableNameID = @TableNameID
Run Code Online (Sandbox Code Playgroud)
这个过程存在于我的开发环境、测试环境和实时环境中。
问题是该过程的每个副本都略有不同,因为每个环境的服务器名称都不同。这使得管理脚本更新的部署变得很麻烦。
有没有办法使程序可移植,以便每个环境都可以运行相同版本的程序?
如果没有,我可以做些什么来使脚本部署更不容易出错/错误?
我们的其中一台 SQL Server 最近报告了以下错误:
DATE/TIME: 2/25/2013 9:15:14 PM
DESCRIPTION: No catalog entry found for partition ID 9079262474267394048
in database 2. The metadata is inconsistent. Run DBCC CHECKDB to check for
a metadata corruption.
Run Code Online (Sandbox Code Playgroud)
不到 15 分钟后,我连接到服务器并运行:
SELECT name
FROM sys.databases
WHERE database_id = 2;
Run Code Online (Sandbox Code Playgroud)
返回'tempdb'。然后我跑了:
DBCC CHECKDB ('tempdb') WITH NO_INFOMSGS, TABLERESULTS;
Run Code Online (Sandbox Code Playgroud)
没有返回任何结果,表明受影响的数据库没有问题。
数据库中的损坏如何导致上述错误消息DBCC CHECKDB但未报告问题?我假设如果页面校验和计算失败,导致页面被标记为怀疑引用该页面的任何对象将无法删除,但我一定是错的。
一旦页面被标记为“可疑”,如何将其标记为“不可疑”、“已修复”或“重用”,或者DBCC CHECKDB不报告相关页面有任何问题的任何内容?
编辑:2013-02-27 13:24
只是为了好玩,我试图在 TempDB 中重新创建损坏,假设 #temp 表是罪魁祸首。
但是,由于我无法SINGLE_USER在 TempDB 中设置该选项,因此无法用于DBCC WRITEPAGE损坏页面,因此我无法在 TempDB 中强制损坏。
而不是使用DBCC WRITEPAGE …
我在 SQL Server 2008 中有一个一直在增长的数据库,我想知道哪些表在过去 6 个月中增长最快。