問題提交于2005年9月26日
SQL Server 2005中是否有新的索引類別了?
專家回答:
SQL Server 2005沒有為關系表引入新的索引類型;旧稀鄞睾头蔷鄞厮饕且訠-trees的方式實現的——還仍然在應用。然而,SQL Server 2005確實包含了一些索引上的加強,不論是完全文本索引,還是對于XML數據,此外這些加強還可以改善一些與關系型索引有關的問題。
SQL Server 2005的完全文本索引特性是全新的,并且是重新編寫的。要獲得這個特性的信息,請閱讀Nimish Khanolkar的MSDN廣播文檔,介紹SQL Server 2005中的全文本查找。
XML是SQL Server 2005中另外一個在方式上發生了巨大轉變的內容,F在對于開發人員來說有第一流的XML數據類型可用了。這個類型支持XQuery查詢語言,使用了這個類型的字段可以通過特殊格式的XML索引被索引到。要了解更多有關XML類型的信息,請查找MSDN 上的文章。
還有各種各樣的有關T-SQL索引命令的加強。也許最令人感興趣的就是新的“在線”索引類型,它允許數據庫管理員在不需要把用戶鎖到表外面的情況下執行索引維護任務。這個很有可能標記著數據庫管理員需要等到夜里3點才能打開維護窗口修正問題的狀況的終結!要了解更多有關這個特性的信息,請查找SQL Server Worldwide Users Group 上的文章。
為行選擇創建一個腳本
問題提交于2005年12月15日
想象一下這個表:
prod_key item_key pack_key last_sale
LM001 1029 AD100 2004/12/05
LM870 1029 AD100 2005/09/20
PE789 1030 BC400 2003/07/12
PE312 1030 BC400 2004/08/07
我想要選出哪些在item_key 和pack_key相等的情況下,日期比較大的那一行。換句話說,我想要:
LM870 1029 AD100 2005/09/20
PE312 1030 BC400 2004/08/07
你能幫我寫出這個腳本嗎?
專家回答:
這個表有主鍵嗎?那樣的話查詢可能會容易些。不管怎么樣,我覺得你應該按照下面這樣:
SELECT prod_key,item_key,pack_key,last_sale
FROM (SELECT item_key,pack_key,MAX(last_sale) AS last_sale FROM tablex GROUP BY item_key,pack_key) AS MaxDateTable
WHERE tablex.item_key = MaxDateTable.item_key
AND tablex.pack_key = MaxDateTable.pack_key
AND tablex.last_sale = MaxDateTable.last_sale
列出沒有記錄的數據庫表
問題提交于2006年5月16日
我創建了一個動態的SQL Server查詢來輸出表中行的數量。我的目標是列出在數據庫中沒有記錄的表。查詢如下所示:
declare @strsql varchar(100)
declare @tablename varchar(50)
@tablename=’table123′@strsql=’select count(*) from ‘ + @tablename exec(@strsql)
我得到了輸出,但是我無法把這個值存儲到變量中以備查看。
我想要這樣查看:
/* @countvariable=0
print(@tablename)*/
還有其它的解決方法嗎?
專家回答:
你可以讓你的解決方案更加靈活一些,通過從sysobjects表中抓取表名:
declare @strsql varchar(256)
create table #emptytables (tablename varchar(128), table_rowcount int)select @strsql=’select distinct o.name as TableName, x.rowcnt as Table_RowCount
from sysobjects o
inner join sysindexes x
on o.id = x.id
where x.rowcnt = 0 and
o.type = ‘’U”’insert #emptytables (TableName, Table_rowcount) exec (@strsql)
select * from #emptytables
drop table #emptytables
文章來源于領測軟件測試網 http://www.kjueaiud.com/