科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道适合SQL初学者学习的SQL FAQ集锦(2)

适合SQL初学者学习的SQL FAQ集锦(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

假设有张学生成绩表(CJ)如下

作者:li 来源:赛迪网 2007年8月26日

关键字: 集锦 SQL Server SQL Server 各版本 数据库

  • 评论
  • 分享微博
  • 分享邮件
 

3. 如何取得一个数据表的所有列名

方法如下:先从SYSTEMOBJECT系统表中取得数据表的SYSTEMID,然后再SYSCOLUMN表中取得该数据表的所有列名。

SQL语句如下:

declare @objid int,@objname char(40)
set @objname = 'tablename'
select @objid = id from sysobjects 
where id = object_id(@objname)
select 'Column_name' = name from syscolumns 
where id = @objid order by colid

4. 通过SQL语句来更改用户的密码

 

修改别人的,需要sysadmin role
EXEC sp_password NULL, 'newpassword', 'User'
如果帐号为SA执行EXEC sp_password NULL, 'newpassword', sa
 

5. 怎么判断出一个表的哪些字段不允许为空?

select COLUMN_NAME from INFORMATION_SCHEMA.
COLUMNS where IS_NULLABLE='NO' and TABLE_NAME=tablename

  

6. 如何在数据库里找到含有相同字段的表?

a. 查已知列名的情况
SELECT  b.name  as  TableName,a.name  as  columnname  
From  syscolumns    a  INNER  JOIN    sysobjects  b    
ON  a.id=b.id    
AND  b.type='U'    
AND  a.name='你的字段名字'  

b. 未知列名查所有在不同表出现过的列名
Select  o.name  As  tablename,s1.name  As  columnname  
From  syscolumns  s1,  sysobjects  o  
Where  s1.id  =  o.id  
And  o.type  =  'U'  
And  Exists  (  
Select  1  From  syscolumns  s2    
Where  s1.name  =  s2.name    
And s1.id  <>  s2.id  
)
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章