用户名  找回密码
 FreeOZ用户注册
查看: 5329|回复: 25
打印 上一主题 下一主题

[其他] SQL Server面试问题集锦

[复制链接]
跳转到指定楼层
1#
发表于 28-5-2007 17:47:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
目前在职场中很难找到非常合格的数据库开发人员。我的一个同事曾经说过:“SQL开发是一门语言,它很容易学,但是很难掌握。”

 在面试应聘的SQL Server数据库开发人员时,我运用了一套标准的基准技术问题。下面这些问题是我觉得能够真正有助于淘汰不合格应聘者的问题。它们按照从易到难的顺序排列。当您问到关于主键和外键的问题时,后面的问题都十分有难度,因为答案可能会更难解释和说明,尤其是在面试的情形下。

  您能向我简要叙述一下SQL Server 2000中使用的一些数据库对象吗?

  您希望听到的答案包括这样一些对象:表格、视图、用户定义的函数,以及存储过程;如果他们还能够提到像触发器这样的对象就更好了。如果应聘者不能回答这个基本的问题,那么这不是一个好兆头。

  什么是索引?SQL Server 2000里有什么类型的索引?

  任何有经验的数据库开发人员都应该能够很轻易地回答这个问题。一些经验不太多的开发人员能够回答这个问题,但是有些地方会说不清楚。

  简单地说,索引是一个数据结构,用来快速访问数据库表格或者视图里的数据。在SQL Server里,它们有两种形式:聚集索引和非聚集索引。聚集索引在索引的叶级保存数据。这意味着不论聚集索引里有表格的哪个(或哪些)字段,这些字段都会按顺序被保存在表格。由于存在这种排序,所以每个表格只会有一个聚集索引。非聚集索引在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表格有多个非聚集索引。

  NULL是什么意思?

  NULL(空)这个值是数据库世界里一个非常难缠的东西,所以有不少应聘者会在这个问题上跌跟头您也不要觉得意外。

  NULL这个值表示UNKNOWN(未知):它不表示“”(空字符串)。假设您的SQL Server数据库里有ANSI_NULLS,当然在默认情况下会有,对NULL这个值的任何比较都会生产一个NULL值。您不能把任何值与一个 UNKNOWN值进行比较,并在逻辑上希望获得一个答案。您必须使用IS NULL操作符。

  什么是主键?什么是外键?

  主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键是一个用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段与另外一个表格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。

  什么是触发器?SQL Server 2000有什么不同类型的触发器?

  让未来的数据库开发人员知道可用的触发器类型以及如何实现它们是非常有益的。

  触发器是一种专用类型的存储过程,它被捆绑到SQL Server 2000的表格或者视图上。在SQL Server 2000里,有INSTEAD-OF和AFTER两种触发器。INSTEAD-OF触发器是替代数据操控语言(Data Manipulation Language,DML)语句对表格执行语句的存储过程。例如,如果我有一个用于TableA的INSTEAD-OF-UPDATE触发器,同时对这个表格执行一个更新语句,那么INSTEAD-OF-UPDATE触发器里的代码会执行,而不是我执行的更新语句则不会执行操作。

  AFTER触发器要在DML语句在数据库里使用之后才执行。这些类型的触发器对于监视发生在数据库表格里的数据变化十分好用。

  您如何确一个带有名为Fld1字段的TableB表格里只具有Fld1字段里的那些值,而这些值同时在名为TableA的表格的Fld1字段里?

  这个与关系相关的问题有两个可能的答案。第一个答案(而且是您希望听到的答案)是使用外键限制。外键限制用来维护引用的完整性。它被用来确保表格里的字段只保存有已经在不同的(或者相同的)表格里的另一个字段里定义了的值。这个字段就是候选键(通常是另外一个表格的主键)。

  另外一种答案是触发器。触发器可以被用来保证以另外一种方式实现与限制相同的作用,但是它非常难设置与维护,而且性能一般都很糟糕。由于这个原因,微软建议开发人员使用外键限制而不是触发器来维护引用的完整性。

对一个投入使用的在线事务处理表格有过多索引需要有什么样的性能考虑?

  您正在寻找进行与数据操控有关的应聘人员。对一个表格的索引越多,数据库引擎用来更新、插入或者删除数据所需要的时间就越多,因为在数据操控发生的时候索引也必须要维护。

  您可以用什么来确保表格里的字段只接受特定范围里的值?

  这个问题可以用多种方式来回答,但是只有一个答案是“好”答案。您希望听到的回答是Check限制,它在数据库表格里被定义,用来限制输入该列的值。

  触发器也可以被用来限制数据库表格里的字段能够接受的值,但是这种办法要求触发器在表格里被定义,这可能会在某些情况下影响到性能。因此,微软建议使用Check限制而不是其他的方式来限制域的完整性。

  返回参数和OUTPUT参数之间的区别是什么?

  如果应聘者能够正确地回答这个问题,那么他的机会就非常大了,因为这表明他们具有使用存储过程的经验。

  返回参数总是由存储过程返回,它用来表示存储过程是成功还是失败。返回参数总是INT数据类型。

  OUTPUT参数明确要求由开发人员来指定,它可以返回其他类型的数据,例如字符型和数值型的值。(可以用作输出参数的数据类型是有一些限制的。)您可以在一个存储过程里使用多个OUTPUT参数,而您只能够使用一个返回参数。

  什么是相关子查询?如何使用这些查询?

  经验更加丰富的开发人员将能够准确地描述这种类型的查询。

  相关子查询是一种包含子查询的特殊类型的查询。查询里包含的子查询会真正请求外部查询的值,从而形成一个类似于循环的状况。

  关于面试过程的思考

  这些问题只不过是确定一个SQL Server数据库开发人员是否合格的起点。根据应聘者对上面这些问题的回答情况,我可能会要求他们参加我的TSQL编程考试,这一般是一套根据不同情况进行的10到12个数据库查询。

  

评分

参与人数 3威望 +42 收起 理由
wukong + 17 thx! that's just what i need.
nana + 15 你太有才了!
kingpmp + 10 谢谢分享!

查看全部评分

回复  

举报

2#
 楼主| 发表于 28-5-2007 18:01:15 | 只看该作者
1. What is normalization? - Well a relational database is basically composed of tables that contain related data. So the Process of organizing this data into tables is actually referred to as normalization.

   2. What is a Stored Procedure? - Its nothing but a set of T-SQL statements combined to perform a single task of several tasks. Its basically like a Macro so when you invoke the Stored procedure, you actually run a set of statements.

   3. Can you give an example of Stored Procedure? - sp_helpdb , sp_who2, sp_renamedb are a set of system defined stored procedures. We can also have user defined stored procedures which can be called in similar way.

   4. What is a trigger? - Triggers are basically used to implement business rules. Triggers is also similar to stored procedures. The difference is that it can be activated when data is added or edited or deleted from a table in a database.

   5. What is a view? - If we have several tables in a db and we want to view only specific columns from specific tables we can go for views. It would also suffice the needs of security some times allowing specfic users to see only specific columns based on the permission that we can configure on the view. Views also reduce the effort that is required for writing queries to access specific columns every time.

   6. What is an Index? - When queries are run against a db, an index on that db basically helps in the way the data is sorted to process the query for faster and data retrievals are much faster when we have an index.

   7. What are the types of indexes available with SQL Server? - There are basically two types of indexes that we use with the SQL Server. Clustered and the Non-Clustered.

   8. What is the basic difference between clustered and a non-clustered index? - The difference is that, Clustered index is unique for any given table and we can have only one clustered index on a table. The leaf level of a clustered index is the actual data and the data is resorted in case of clustered index. Whereas in case of non-clustered index the leaf level is actually a pointer to the data in rows so we can have as many non-clustered indexes as we can on the db.

   9. What are cursors? - Well cursors help us to do an operation on a set of data that we retreive by commands such as Select columns from table. For example : If we have duplicate records in a table we can remove it by declaring a cursor which would check the records during retreival one by one and remove rows which have duplicate values.

  10. When do we use the UPDATE_STATISTICS command? - This command is basically used when we do a large processing of data. If we do a large amount of deletions any modification or Bulk Copy into the tables, we need to basically update the indexes to take these changes into account. UPDATE_STATISTICS updates the indexes on these tables accordingly.

  11. Which TCP/IP port does SQL Server run on? - SQL Server runs on port 1433 but we can also change it for better security.
  12. From where can you change the default port? - From the Network Utility TCP/IP properties –> Port number.both on client and the server.

  13. Can you tell me the difference between DELETE & TRUNCATE commands? - Delete command removes the rows from a table based on the condition that we provide with a WHERE clause. Truncate will actually remove all the rows from a table and there will be no data in the table after we run the truncate command.

  14. Can we use Truncate command on a table which is referenced by FOREIGN KEY? - No. We cannot use Truncate command on a table with Foreign Key because of referential integrity.

  15. What is the use of DBCC commands? - DBCC stands for database consistency checker. We use these commands to check the consistency of the databases, i.e., maintenance, validation task and status checks.

  16. Can you give me some DBCC command options?(Database consistency check) - DBCC CHECKDB - Ensures that tables in the db and the indexes are correctly linked.and DBCC CHECKALLOC - To check that all pages in a db are correctly allocated. DBCC SQLPERF - It gives report on current usage of transaction log in percentage. DBCC CHECKFILEGROUP - Checks all tables file group for any damage.

  17. What command do we use to rename a db? - sp_renamedb ‘oldname’ , ‘newname’

  18. Well sometimes sp_reanmedb may not work you know because if some one is using the db it will not accept this command so what do you think you can do in such cases? - In such cases we can first bring to db to single user using sp_dboptions and then we can rename that db and then we can rerun the sp_dboptions command to remove the single user mode.

  19. What is the difference between a HAVING CLAUSE and a WHERE CLAUSE? - Having Clause is basically used only with the GROUP BY function in a query. WHERE Clause is applied to each row before they are part of the GROUP BY function in a query.

  20. What do you mean by COLLATION? - Collation is basically the sort order. There are three types of sort order Dictionary case sensitive, Dictonary - case insensitive and Binary.

  21. What is a Join in SQL Server? - Join actually puts data from two or more tables into a single result set.

  22. Can you explain the types of Joins that we can have with Sql Server? - There are three types of joins: Inner Join, Outer Join, Cross Join

  23. When do you use SQL Profiler? - SQL Profiler utility allows us to basically track connections to the SQL Server and also determine activities such as which SQL Scripts are running, failed jobs etc..

  24. What is a Linked Server? - Linked Servers is a concept in SQL Server by which we can add other SQL Server to a Group and query both the SQL Server dbs using T-SQL Statements.

  25. Can you link only other SQL Servers or any database servers such as Oracle? - We can link any server provided we have the OLE-DB provider from Microsoft to allow a link. For Oracle we have a OLE-DB provider for oracle that microsoft provides to add it as a linked server to the sql server group.

  26. Which stored procedure will you be running to add a linked server? - sp_addlinkedserver, sp_addlinkedsrvlogin

  27. What are the OS services that the SQL Server installation adds? - MS SQL SERVER SERVICE, SQL AGENT SERVICE, DTC (Distribution transac co-ordinator)

  28. Can you explain the role of each service? - SQL SERVER - is for running the databases SQL AGENT - is for automation such as Jobs, DB Maintanance, Backups DTC - Is for linking and connecting to other SQL Servers

  29. How do you troubleshoot SQL Server if its running very slow? - First check the processor and memory usage to see that processor is not above 80% utilization and memory not above 40-45% utilization then check the disk utilization using Performance Monitor, Secondly, use SQL Profiler to check for the users and current SQL activities and jobs running which might be a problem. Third would be to run UPDATE_STATISTICS command to update the indexes

  30. Lets say due to N/W or Security issues client is not able to connect to server or vice versa. How do you troubleshoot? - First I will look to ensure that port settings are proper on server and client Network utility for connections. ODBC is properly configured at client end for connection ——Makepipe & readpipe are utilities to check for connection. Makepipe is run on Server and readpipe on client to check for any connection issues.

  31. What are the authentication modes in SQL Server? - Windows mode and mixed mode (SQL & Windows).

  32. Where do you think the users names and passwords will be stored in sql server? - They get stored in master db in the sysxlogins table.

  33. What is log shipping? Can we do logshipping with SQL Server 7.0 - Logshipping is a new feature of SQL Server 2000. We should have two SQL Server - Enterprise Editions. From Enterprise Manager we can configure the logshipping. In logshipping the transactional log file from one server is automatically updated into the backup database on the other server. If one server fails, the other server will have the same db and we can use this as the DR (disaster recovery) plan.

  34. Let us say the SQL Server crashed and you are rebuilding the databases including the master database what procedure to you follow? - For restoring the master db we have to stop the SQL Server first and then from command line we can type SQLSERVER –m which will basically bring it into the maintenance mode after which we can restore the master db.

  35. Let us say master db itself has no backup. Now you have to rebuild the db so what kind of action do you take? - (I am not sure- but I think we have a command to do it).

  36. What is BCP? When do we use it? - BulkCopy is a tool used to copy huge amount of data from tables and views. But it won’t copy the structures of the same.

  37. What should we do to copy the tables, schema and views from one SQL Server to another? - We have to write some DTS packages for it.
回复  

举报

3#
发表于 29-5-2007 21:17:07 | 只看该作者

好东西。。。谢了。。。

居然没有人顶。。。。。。
回复  

举报

4#
 楼主| 发表于 30-5-2007 13:20:03 | 只看该作者
呵呵,格我自己顶一下。
回复  

举报

5#
发表于 4-6-2007 11:44:30 | 只看该作者
Thanks leily, you did a good job!   That's really what I  want!
回复  

举报

6#
发表于 4-6-2007 11:48:44 | 只看该作者
By the way, "Could you tell me what LEFT OUTER JOIN is"?   I heard the same question twice recently.
回复  

举报

7#
发表于 4-6-2007 12:58:56 | 只看该作者
英文很棒呀
回复  

举报

8#
 楼主| 发表于 4-6-2007 14:57:32 | 只看该作者
原帖由 kingpmp 于 4-6-2007 10:48 发表
By the way, "Could you tell me what LEFT OUTER JOIN is"?   I heard the same question twice recently.


在一个正规化的数据库环境中, 我们常会碰到这款情形: 所需的资料并不是放在同一个资料表中, 在这个时候, 你就要用到 Join
当然 Join 如何将不同的数据库的资料结合, 还要看你如何使用它, 一共有四种不同的 Join 的方式, 在
这篇文章中我们将为你介绍 Inner Join 及 Outer Join 以及其应用
Inner Join
Inner Join 应该是最常用的 Join 方式, 它只会传回符合 Join 规则的纪录, 还是先来看看语法
Select <要选择的字段> From <主要资料表>
<Join 方式> <次要资料表> [On <Join 规则>]
现在我们利用 MS SQL 内建的北风数据库来实际练习一下! 想多了解 MS SQL 的内建数据库, 你可以看看 SQL Server 的内建数据库 这篇文章
请打开 QA (Query Analyzer), 为了使用北风数据库, 请先执行 Use Northwind, 然后执行
Select ProductId, ProductName, SupplierId From Products
从 Products 产品资料表中取出三个字段, 分别是产品代码, 产品名称, 供货商代码, 但查询出来的结果保证让你的老板很不满意,  因为供货商代码对于人类实在是无虾米意义, 这个时候 Join 就可以帮上忙了, 藉由 Join Suppliers 这个资料表我们便可以查询到供货商名称
Select ProductId, ProductName, Suppliers.SupplierId
From Products
Inner Join Suppliers
Products.Suppliers = Suppliers.SupplierId
这款的查询结果是不是卡清楚呢! Inner Join 的主要精神就是 exclusive , 叫它做排他性吧! 就是讲 Join 规则不相符的资料就会被排除掉, 譬如讲在 Product 中有一项产品的供货商代码 (SupplierId), 没有出现在 Suppliers 资料表中, 那么这笔记录便会被排除掉
Outer Join
这款的 Join 方式是一般人比较少用到的, 甚至有些 SQL 的管理者也从未用过, 这真是一件悲哀的代志, 因为善用 Outer Join 是可以简化一些查询的工作的, 先来看看 Outer Join 的语法
Select <要查询的字段> From <Left 资料表>
<Left | Right> [Outer] Join <Right 资料表> On <Join 规则>
语法中的 Outer 是可以省略的, 例如你可以用 Left Join 或是 Right Join, 在本质上, Outer Join  是 inclusive, 叫它做包容性吧! 不同于 Inner Join 的排他性, 因此在 Left Outer Join 的查询结果会包含所有 Left 资料表的资料, 颠倒过来讲, Right Outer Join 的查询就会包含所有 Right 资料表的资料, 接下来我们还是来做些实际操作, 仍然是使用北风数据库, 但要先做一些小小的修改, 才能达到我们要的结果
首先要拿掉 Products 资料表的 Foreign Key, 否则没有法度在 Products 资料表新增一笔  SupplierId 没有对映到 Suppliers 资料表的纪录, 要知影一个资料表的 Constraint 你可以执行 SQL 内建的  sp_helpconstraint , 在 QA 执行
sp_helpconstraint Products
接下来删除 FK_Products_Suppliers 这个 Foreign Key
Alter Table Products
Drop Constraint FK_Products_Suppliers
再来新增一笔纪录于 Products 资料表, SupplierId 使用 50 是因为它并没有对映到 Suppliers 资料表中的记录
Insert Into Products (ProductName,SupplierId,CategoryId)
values ('Test Product','50','1')
现在我们再执行头前的查询, 只是将 Inner Join 改为 Left Outer Join
Select ProductId, ProductName, Suppliers.SupplierId
From Products
Left Outer Join Suppliers
Products.Suppliers = Suppliers.SupplierId
比较一下两种 Join 方式的查询结果, 你应该就会知影其中的差别!
再来看看 Right Outer Join, 请新增下底这笔记录
Insert Into Suppliers (CompanyName)
values ('LearnASP')
现在请使用 Right Out Join 来作查询, 比较看看查询的结果和 Inner Join 有什么不同!
寻找不相符纪录
这里我们来看看如何使用 Out Join 来找不相符纪录, 可能是有子纪录却没有父纪录或是颠倒过来
Select Suppliers.CompanyName From Products
Right Join Suppliers
On Products.SupplierId = Suppliers.SupplierId
Where Products.SupplierId is Null
执行结果你会找到一笔资料为 LearnASP, 该笔供货商资料存在, 但基本上已经没有产品是来自这个供货商, 想象一下如果不用 Outer Join 你要怎么以一个 SQL 指令完成同一查询结果! 知道 Outer Join 的好用了吧! 再执行
Select Products.ProductName
From Products
Left Join Suppliers
On Products.SupplierId = Suppliers.SupplierId
Where Suppliers.SupplierId is Null
这个查询结果你会发现 Test Product 这项产品竟然找不到供货商的资料!
回复  

举报

9#
 楼主| 发表于 4-6-2007 14:58:06 | 只看该作者
比如我们想对某人的消费项目进行汇总,对应以下两个表:Theme 与 ThemeDetail

Theme 的记录为:
ThemeID(int)    ThemeName(varchar[10])
        1                        就餐
        2                        出差
        3                        乘车
        4                        其它

ThemeDetail 的记录为:
DetailID(int)    ThemeID(int)    Price(money)
       1                    1                 12.5
       2                    1                    5
       3                    1                    6
       4                    2                   11
       5                    2                   17
       6                    3                    8

其中 Theme 中的 ThemeID 与 ThemeDetail 中的 ThemeID 是一对多的关系,对 ThemeDetail 表的理解如下:“就餐”费用为 12.5 + 5 + 6 = 23.5 元,“出差”费用为 11 + 17 = 28 元,“乘车”费用为 8 = 8 元,“其它”费用不存在,视为 0 处理,对应的 SQL 语句可以这样表示:

SELECT TOP 100 PERCENT dbo.Theme.ThemeName, ISNULL(SUM(dbo.ThemeDetail.Price), 0)
      AS TotalPrice
FROM dbo.Theme INNER JOIN
      dbo.ThemeDetail ON dbo.Theme.ThemeID = dbo.ThemeDetail.ThemeID
GROUP BY dbo.Theme.ThemeName, dbo.Theme.ThemeID
ORDER BY dbo.Theme.ThemeID

执行结果如下:
ThemeName    TotalPrice
    就餐              23.5
    出差               28
    乘车                8

对于消费记录不存的记录如果就这样不显示它的话,使用内联的方法就可以满足要求了,但是我们现在需要对 Theme 中的每一项均做统计,也包括“其它”项,于是我们应该采用另一种方法来实现,这就是左外联的方法,相应的 SQL 语句可以这样表示:

SELECT TOP 100 PERCENT dbo.Theme.ThemeName, ISNULL(SUM(dbo.ThemeDetail.Price), 0)
      AS TotalPrice
FROM dbo.Theme LEFT OUTER JOIN
      dbo.ThemeDetail ON dbo.Theme.ThemeID = dbo.ThemeDetail.ThemeID
GROUP BY dbo.Theme.ThemeName, dbo.Theme.ThemeID
ORDER BY dbo.Theme.ThemeID

执行结果如下:
ThemeName    TotalPrice
    就餐              23.5
    出差               28
    乘车                8
    其它                0

这样是不是就满足了我们的要求呢!
回复  

举报

10#
 楼主| 发表于 4-6-2007 14:58:54 | 只看该作者
kingpmp

这个有没有用?我不是专业技术人员,只是猎头。。。
回复  

举报

11#
发表于 5-6-2007 00:03:00 | 只看该作者
我就是搞这个的。。。8过SQL SERVER已经不是紧缺了,不加分。否则雅斯5分就够了
回复  

举报

12#
发表于 5-6-2007 00:06:34 | 只看该作者
原帖由 leily 于 4-6-2007 13:58 发表
kingpmp

这个有没有用?我不是专业技术人员,只是猎头。。。


Thanks for that!
回复  

举报

13#
发表于 1-10-2007 00:33:24 | 只看该作者
估计还是Oracle和DB2的吃香。
回复  

举报

14#
发表于 23-10-2007 16:07:07 | 只看该作者
呵呵,数据库开发的朋友还是不少吗,又找到了一个组织
回复  

举报

15#
发表于 1-11-2007 23:40:40 | 只看该作者
thanks for sharing
回复  

举报

16#
发表于 3-11-2007 21:42:51 | 只看该作者
问题10, 13, 14 答案并不准确

10 -- Update_statistics will not update indexes. It will update stats... What is stats? check SQL Server Book Online. Long story...

13 -- Difference between delete and truncate, delete is logged and truncate will not be logged, and therefore when you delete a large number of rows truncate will be faster than delete. Using Delete you can specify conditions, while truncate will remove all the rows from the table

14 -- I have not tested so I am not 100% sure whether truncate will be different... When you create foreign keys in SQL server you can specify what will happen to the rows in the child table when the rows referenced in the parent table are deleted. The default value is no action which means SQL server will raise an error and roll back the deletion in the parent table when you try to delete the referenced row in the parent table. Howeve you can also specify cascade, set null and set default which means the referenced rows can be deleted, and the rows in the child table will either be deleted, or values that make up the foreign key will be set to null or set to default value. So to me the answer should be it depends
回复  

举报

17#
发表于 3-11-2007 21:54:58 | 只看该作者
其实好多问题的答案,感觉都没有回答到点子上。面试的时候,如果是比较厉害的技术人员作面试官,和你随便一聊就可以基本知道你的水平。建议大家还是要花点时间磨练真功夫
回复  

举报

18#
发表于 5-11-2007 14:40:17 | 只看该作者

     好东西,谢谢!
回复  

举报

19#
发表于 20-2-2008 16:49:53 | 只看该作者

回复 #10 leily 的帖子

猎头都知道这么多数据库的知识,再练练实际操作可以去当DBA了
不过是不是DBA挣的不如猎头多呀  
回复  

举报

20#
发表于 21-2-2008 02:30:09 | 只看该作者
楼主是猎头公司的吗,请问经验丰富的oracle dba现在在悉尼找工作容易吗? 我下个月就要去悉尼了。
回复  

举报

21#
发表于 21-2-2008 03:13:42 | 只看该作者
提示: 该帖被管理员或版主屏蔽
回复  

举报

22#
发表于 11-3-2008 23:22:09 | 只看该作者
收藏先。。。。。。。。顶~
回复  

举报

23#
发表于 15-3-2008 17:25:15 | 只看该作者
不错,顶一个
回复  

举报

24#
发表于 21-3-2008 17:32:48 | 只看该作者
Thanks!!  ,discussion in question.   contact me : cxmcmosi@hotmail.com
回复  

举报

25#
发表于 21-1-2009 16:49:34 | 只看该作者
飘过。
回复  

举报

26#
发表于 23-1-2009 22:53:18 | 只看该作者
mark学习
回复  

举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 30-3-2025 09:04 , Processed in 0.038292 second(s), 43 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表