1. 如何取得一个数据表的所有列名 方法如下:先从SYSTEMOBJECT系统表中取得数据表的SYSTEMID,然后再SYSCOLUMN表中取得该数据表的所有列名。 SQL语句如下: declare@objidint,@objnamechar(40) set@objname='tablename' select@objid= id from sysobjects where id =object_id(@objname) select'Column_name'= name from syscolumns where id =@objidorderby colid 是不是太简单了? 呵呵 不过经常用阿. 2. 通过SQL语句来更改用户的密码 修改别人的,需要sysadmin role EXEC sp_password NULL, 'newpassword', 'User' 如果帐号为SA执行EXEC sp_password NULL, 'newpassword', sa 3. 怎么判断出一个表的哪些字段不允许为空? select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where IS_NULLABLE='NO'and TABLE_NAME=tablename 4. 如何在数据库里找到含有相同字段的表? a. 查已知列名的情况 SELECT b.name as TableName,a.name as columnname From syscolumns a INNERJOIN 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' AndExists ( Select1From syscolumns s2 Where s1.name = s2.name And s1.id <> s2.id ) 5. 查询第xxx行数据 假设id是主键: select* from (selecttop xxx *from yourtable) aa wherenotexists(select1from (selecttop xxx-1*from yourtable) bb where aa.id=bb.id) 如果使用游标也是可以的 fetch absolute [number]from[cursor_name] 行数为绝对行数
6.如果表中某一列为Indentity列,必须加入如下一句话才能向其中手动添加值,同时别忘了关掉 SET IDENTITY_INSERT TestName ON SET IDENTITY_INSERT TestName OFF