我在某处读到,在创建HTML电子邮件时,您应该使用基于表格的布局.您不应该关心创建无表格的基于CSS的布局.真的吗?我必须为我的公司创建一个简报布局,但我不觉得写3个嵌套表很舒服.
我有一张非常大的桌子,有大约2亿行.它根本没有索引/ pk.在这个表中选择(显然)运行缓慢.我决定使用3列创建PK.我是在一个测试环境中做到的,它有一个较小版本的表,它就像一个魅力.
所以,在回家之前,我做了一个ALTER TABLE HUGETABLE ADD CONSTRAINT PK_HUGETABLE PRIMARY KEY(ID1,ID2,ID3);
我预计它会持续过夜,但已经超过24小时,它仍在运行.
我知道如果我在开始查询之前保留了会话ID,我就可以在V $ SESSION_LONGOPS中跟踪它.但我没有.
有没有办法检查我的查询是如何进行的,或者它还需要多长时间?
有什么方法可以引用在“sp_msforeachdb”循环内运行的“sp_MSforeachtable”循环内的表?
例如,在以下查询中,'?' 总是引用数据库:
DECLARE @cmd VARCHAR(8000);
SET @cmd = 'USE ?; EXEC sp_MSforeachtable @command1="select db_name = DB_NAME(), db_foreach = ''?'', tb_foreach = ''?'' "'
EXEC sp_msforeachdb @command1 =@cmd
Run Code Online (Sandbox Code Playgroud)
导致:
db_name db_forearch tb_foreach
ServerMonitor master master
Run Code Online (Sandbox Code Playgroud)
我想要一些类似的东西:
db_name db_forearch tb_foreach
ServerMonitor master <TABLE_NAME>
Run Code Online (Sandbox Code Playgroud)
我应该改变什么?
解决了。按照肖恩的建议,我使用了我的 ow 光标。但是 Ben Thul 建议的 @replacechar 解决方案正是我正在寻找的。
DECLARE @cmd VARCHAR(8000);
SET @cmd = 'USE ^; EXEC sp_MSforeachtable @command1="select db_name = DB_NAME(), db_foreach = ''^'', tb_foreach = ''?'' "'
EXEC sp_msforeachdb @command1 =@cmd, @replacechar = '^'
Run Code Online (Sandbox Code Playgroud)