SQL Server:INFORMATION_SCHEMA.columns vs sys.columns vs syscolumns
来源:互联网 发布:淘宝店铺商标注册 编辑:程序博客网 时间:2024/06/05 09:04
首先,sys.columns vs syscolumns,这个自不必多说。
sys.columns是SQL Server从2005版本起引入的新的系统级视图。相关链接如下:
- Mapping SQL Server 2000 System Tables to SQL Server 2005 System Views
http://technet.microsoft.com/en-us/library/ms187997%28SQL.90%29.aspx - sys.columns vs syscolumns
http://luke.breuer.com/time/item/syscolumns_vs_syscolumns/624.aspx
使用sys.columns,避免了直接访问系统表,这将使某些权限受限的用户直接受益。
而 INFORMATION_SCHEMA.columns 和 sys.columns 相比,哪个是更推荐的呢?
答案是INFORMATION_SCHEMA.columns。因为INFORMATION_SCHEMA.columns是符合ISO标准的,而sys.columns这种东西是微软自家搞出来的私有的东西。
其实INFORMATION_SCHEMA.columns 和 sys.columns二者本质上来说都是view。二者本质一样的前提下,我们推荐符合ISO标准的,这样的话这种experience也能和其它database的experience保持一致。
关于INFORMATION_SCHEMA,相关链接如下:
- Information Schema Views (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms186778.aspx
因此,举个例子,假如我们要判断某个表是否存在某个字段,如果不存在则添加该字段并且绑定一个默认值,那么我的推荐写法如下:
-- Alter table LabelSkin: Add column Width if not exists (select column_name from INFORMATION_SCHEMA.columns where table_name = 'LabelSkin' and column_name = 'Width')ALTER TABLE dbo.LabelSkin ADD Width numeric(18, 0) NOT NULL CONSTRAINT DF_LabelSkin_Width DEFAULT 0;
- SQL Server:INFORMATION_SCHEMA.columns vs sys.columns vs syscolumns
- sys.columns (SQL Server 2005 )
- SQL Server 中的系统表(2) sys.columns
- SELECT * FROM information_schema.columns
- MySQL INFORMATION_SCHEMA -- COLUMNS Table
- information_schema系统表——COLUMNS
- 关于mysql中的information_schema.tables和information_schema.columns详解
- Change Not For Replication Value for SQL Server Identity Columns
- mysql中列信息查询(information_schema.columns )
- Unable to list the columns. [Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句。
- ORA-14039: partitioning columns must form a subset of key columns of a UNIQUE index SYS
- SQL Server vs Oracle vs DB2
- PostGIS/PostgreSQL vs. MySql vs. SQL Server
- SQL Azure vs SQL Server
- SQL Azure vs SQL Server
- POJ_1617_Crypto Columns
- Crypto Columns
- Removing Columns
- 杂
- Lisp语言:条件判断
- Tizen——Tizen软件平台概述
- cocoa touch layer下面的几个点连载之--CoreLocation
- C/C++算法实例(四)--排序算法
- SQL Server:INFORMATION_SCHEMA.columns vs sys.columns vs syscolumns
- 程序报错
- android中跨进程通讯的4种方式
- Android之进程查看,关闭(可操作所有进程)
- proxy动态代理机制分析
- C/C++算法实例(五)--高精度计算
- pydev 配置解释器出错,unsupported version
- apkbuilder命令详解
- c语言文件操作相关函数的用法