xiaolingzi's blog

每天都在成长...

欢迎您:亲

sql server查询表结构(字段名,数据类型,长度,描述,是否允许为空,是否为主键)

xiaolingzi 发表于 2012-11-02 13:00:46

一、为什么要读取表结构

对于一个程序员的平常工作当中,我们常用的都是用来从数据库表中读取数据的sql,而对于表结构的读取就比较少用了。因为有客户端,没事我们也没必要通过sql语句就读取而查找表结构之类的东西。但是在以下的一些情况中可能我们就要用到了。比如:

1.要写一个实体生成器的时候,我们就得读取表的字段、类型等等之类的东西;

2.如果要做一个数据库管理系统,我们不仅要读取结构,我们还得知道怎么去添加和修改这些结构(不过添加和修改不在这篇文章的介绍内容内);

当然还会有其他的一些用到的情况,这里就不一一列举了。

二、怎么入手

当我们想到要做读取表结构这件事时,我们该如何入手呢。如果我们已经是这方面的专家或已经熟悉了这方面的知识的话,那么我们需要的就是动手去做了。但如果你之前对这一无所知或者了解不够的时候,我们该怎么做呢?

今天我们就说说第二种情况我们该怎么做吧。为什么要说这呢?因为每个人的知识都是有限

阅读全文

MS Sql Server 中对xml类型字段的查询和修改操作

xiaolingzi 发表于 2012-09-26 18:20:33

xml在sql server 2005开始被引入作为一种字段类型,也就是说我们可以定义一个字段用于存储xml数据。当然我们也可以以文本的方式将xml片段存入文本类型字段中,但是如果以后我们想对这xml片段进行操作就比较困难。那么xml类型字段的出现,就让我们在存储xml片段之后,我们可以进行一系列的查询和修改操作,无疑是更加方便了。

关于xml的定义和基本使用和其他字段是一样的,它不过是一种新的数据库字段类型。但是需要注意的一点就是定义为xml字段不可以作为主键或者索引键。

好,下面我们通过具体的实验来讲解如果对xml类型字段进行操作。

首先,我们现在建立一张用于测试的表,表结构如下


然后我们往数据里面添加一条数据用于测试

insert into XmlTest(
XmlCol
)values(
'
<Articles>
<Article Id="1">
<Author>xiaolingzi</Au

阅读全文

sql 修改表和存储过程的所有者

xiaolingzi 发表于 2009-06-17 22:10:44

在网上找服务器或虚拟主机时,经常就是数据库名称和数据库的用户名都是提供商定了,而我们把原有的数据备份后再在提供商的网上管理还原时,数据库里的表和存储过程都是属于原来用户所有,但我们又必须使用提供商提供的用户名(因为我们没有权限将还原后的用户名即孤立用户添加登陆名),所以此时我们就需要将表存储过程的所有者改为提供商提供的用户名或是dbo。

下面就说一下如何修改表和存储过程的所有者:

1、exec sp_changeobjectowner '要改的表名/存储过程名','dbo'

--修改单个表或单个存储过程的存储过程

但往往数据库里的表数量也不少,这时我们就需要一个批量修改的方法,如下:

2、exec sp_msforeachtable 'sp_changeobjectowner ''?'', ''dbo'''

对于批量修改存储过程的所有者时,我们首先定义一个用于该功能的存储过程:

CREATE   PRO

阅读全文

sql server 2005 msxml安装失败解决及msxml 6.0 卸载

xiaolingzi 发表于 2009-03-10 19:50:32

昨晚把电脑上的sql server 2000给卸了,然后就装sql server 2005,但安装过程中却出现了msxml安装失败,其他就跟着一连串失败。然后就直接找到msxml6.msi安装,可却提示安装失败,原因是已经有更高版本。于是打开添加删除程序,里面真的有msxml6了。可问题又来了,我卸载msxml6是居然说安装出现严重错误之类的提示,然后就是怎么也卸载不了。

到网上找到的结果说是由于xp sp3对msxml6的保护而导致的,所以卸掉sp3是一个解决方法。但我不想这么做,还是想把msxml6给干掉。搜索继续,终于有个人说了msxml6的卸载方法,就是找一个专门的卸载软件可以卸载掉。可惜他并没有说是什么软件,只说是在外国网上一个网友提供的。很不爽,我这个终于过六级的孩子也决定Google搜索外国网站看看。果然,一个叫Dave的外国网友提出相同的问题,而在别人的回复中就给出了该卸载软

阅读全文

不同的机器还原或附加数据库后,用户无法登录问题的解决

xiaolingzi 发表于 2009-02-21 22:03:10

昨天将在本机弄好的团队的论坛转移到服务器上时,居然出现了错误访问不了,后来到sqlServer查询器里用该论坛用户登陆时发现登陆不了,而且该用户删除不了,说是该用户拥有对象。然后我到网上去找,终于得到了解决。问题出现的原因是在不同的机器还原或附加数据库后,该数据据库的用户只是孤立用户,只有用户名而没有登陆名,在sqlserver组的安全性里登陆里会看不到该用户的名字。

网上给出的解决办法是:使用sp_change_users_login来修复

exec sp_change_users_login 'REPORT'

列出当前数据库的孤立用户

exec sp_change_users_login 'AUTO_FIX','用户名'

可以自动将用户名所对应的同名登录添加到syslogins中

exec sp_change_users_login 'UPDATE_ONE','用户名','登录名'

将用户名映射为指

阅读全文