Skip to main content

sp_tables的@table_type参数

打算写个工具,直接从数据库按字段生成类,使用到了sp_tables,遇到了很奇怪的问题。

查MSDN可以知道:sp_tables的参数之一:@table_type varchar(100) 可选项有:TABLESYSTEMTABLEVIEW

我写了如下代码:Databasedb = DatabaseFactory.CreateDatabase();
DbCommand com = new SqlCommand();
com.CommandText = "sp_tables";
com.CommandType = CommandType.StoredProcedure;
com.Parameters.AddWithValue("@table_type", "TABLE");
IDataReader reader = db.ExecuteReader(com);
却拿不到任何东西。不加@talbe_type的话又返回了大量的系统VIEW。

查看sp_tables的源码,在关于@talbe_type的部分发现如下的东西:if (charindex('''TABLE''',@table_type) <> 0)倒回去仔细看MSDN,参数的说明部分:[ , [ @table_type = ] "'type'" ]比一般的多了2个",而且下面也有说明

Single quotation marks must enclose each table type, and double quotation marks must enclose the whole parameter. Table types must be uppercase. If SET QUOTED_IDENTIFIER is ON, each single quotation mark must be doubled and the whole parameter must be enclosed in single quotation marks.
太大意了。

修改代码:com.Parameters.AddWithValue("@table_type", "'TABLE'");

环境:C# 2.0,MS企业库,SQL Server 2005.

Comments

Popular posts from this blog

PSP 三国无双 大蛇传 人物图片

PSP三国无双 大蛇传 人物图片(Google Picasa相册) 现在还不全,太多了。。。(2008-03-23) 搞完了,体力活啊。(2008-04-20) 暂时放弃吧,那个空间到期很久了,忘了更新这里了。什么时候找到地方放再跟新。(2009-04-29) 上传到Google Picasa(2009-09-25)

使用Google Chrome开发版或是beta版

Google的Chrome是个非常不错的浏览器,界面简洁,javascript执行速度非常快(完全体会不到,对我来说瓶颈是网速,相对常用firefox来说js速度方面到没什么很明显的提升),但是功能还是有限。一般常用的都是稳定版,但是为了体验最新的进步不少人也有安装beta版的,为了体验最新最新的改变还以安装开发版的(相比beta可能更不稳定,bug更多)。现在有了 Google Chrome Channel Changer , 就可以随时在3个版本之间换来换去。 选好版本,点击“Update”就可以关闭这个Channel Changer了。然后再去你的chrome中选择“About Google Chrome”,就会自动的检查下载安装新版本。提示安装完成后重启一下chrome就行了。 用了1个月左右的chrome,还是换回firefox,最小字体是个问题,字体平滑也完全没用,看惯雅黑,点阵字体完全看不惯哦。

一点感想

久久没来,最近在家google基本无法使用了,无奈用自由门翻墙而出,看到自己以前所发的东西,感慨良多。想起硬盘上魔兽截图无数,说不定哪天出个意外,不如发帖留恋。