![](https://www.cnblogs.com/Emoticons/tusiji/203330839.gif)
![](https://www.cnblogs.com/Emoticons/tusiji/202939796.gif)
在SQL Server2005 的使用当中,从2000起便提供了Script 支持,即:
这种脚本支持很方便,但需要你去选择,再去执行,time and time again,so boring.....,想个办法用程序实现。
在TechNet searcher 一下,找到了Table,Index..... 这些class,ok,接着找到SQLServer2005联机丛书上有相关介绍:
仔细看了看Index的Methods,找到了script()方法,对,就这个方法。Now, coding......
1
private void indexScript(string servername,string username,string userpwd,string dbname,string tablename,string )schemaname
2
{
3
try
4
{
5
Server server = new Server(new ServerConnection(servername,username, userpwd));
6
DatabaseCollection dbcollection = server.Databases;
7
Database db = dbcollection[dbname];
8
TableCollection tabCollection = db.Tables;
9
Table tab = tabCollection[tablename, schemaname];
10
IndexCollection indexCollection = tab.Indexes;
11![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
for (int h = 0; h < indexCollection.Count; h++)
13
{
14
StringCollection sc = indexCollection[h].Script();
15
StringBuilder stringbuilder = new StringBuilder();
16
for (int i = 0; i < sc.Count; i++)
17
{
18
stringbuilder.Append(sc[i].ToString() + " ");
19
}
20![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
MessageBox.Show(stringbuilder.ToString());
22
}
23
catch (Exception ex)
24
{
25
throw new Exception(ex.Message);
26
}
27
}
这样就可以将所有 index的script 显示出来,然后你可以再操纵这些script了,例如导称sql文件再执行。至于其他object都可以使用上面的方法。![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
上面这个方法只能用于rebuilder数据库对象,因为script():Generates a Transact-SQL script that can be used to re-create the index.
其他select、alter脚本估计也可以用程序实现,我正在找......,找到了再补充,呵呵。