sql查询表中字段

sql查询表中字段,第1张

select from --主查询

(select namea=cname from syscolumns c,sysobjects o where oid=cid and oxtype='u' and oname='tablea') a--A表中所有字段

full join --使用全连接

(select nameb=cname from syscolumns c,sysobjects o where oid=cid and oxtype='u' and oname='tableb') b--B表中所有字段

on namea=nameb where namea is null or nameb is null--只保留不同的字段

查询结果是,两表不同的字段列出,两表均有的字段不列:

NAMEA,NAMEB

FIELD1 NULL

FIELD2 NULL

NULL FIELD3

NULL FIELD4

select b[value] from syscolumns a left join sysextended_properties b on aobject_id=bmajor_id

and acolumn_id=bminor_id inner join sysobjects c on acolumn_id=cid

and a[name]='列名' and c[name]='表名'

SELECT

表名=case when acolorder=1 then dname else '' end,

表说明=case when acolorder=1 then isnull(fvalue,'') else '' end,

字段序号=acolorder,

字段名=aname,

标识=case when COLUMNPROPERTY( aid,aname,'IsIdentity')=1 then '√'else '' end,

主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (

SELECT name FROM sysindexes WHERE indid in(

SELECT indid FROM sysindexkeys WHERE id = aid AND colid=acolid

))) then '√' else '' end,

类型=bname,

占用字节数=alength,

长度=COLUMNPROPERTY(aid,aname,'PRECISION'),

小数位数=isnull(COLUMNPROPERTY(aid,aname,'Scale'),0),

允许空=case when aisnullable=1 then '√'else '' end,

默认值=isnull(etext,''),

字段说明=isnull(g[value],'')

FROM syscolumns a

left join systypes b on axusertype=bxusertype

inner join sysobjects d on aid=did and dxtype='U' and dname<>'dtproperties'

left join syscomments e on acdefault=eid

left join sysextended_properties g on aid=gmajor_id and acolid=gminor_id

left join sysextended_properties f on did=fmajor_id and fminor_id=0

--where dname='orders' --如果只查询指定表,加上此条件

order by aid,acolorder

假设你的表名tb_users,有一个admission字段(int类型)。 SqlCommand cmd = new SqlCommand("select top 1 from tb_users",new SqlConnection("xxx"));object obj = cmdExecuteScaler();if(objToString()=="1"){ }else{ }

首先该程序不可能一步达到要求的结果,原因很简单:没有相关的系统函数。

我编程实现,大概思路:

计算userid各自长度。

在userid中查找“帮助”。

删除“帮助”及帮助以后的字符。

插入到table2中。

具体实现:

--编写一个游标,从table1大量数据中一条条取出issid等于1的数据

declare @local_variant char(200)

declare cursor_name cursor for

select userid from table1 where issid='1'

open cursor_name

fetch next from cursor_name into @local_variant

--对userid进行处理

declare @location int

declare @change_data char(200)

--帮助出现的位置

set @location = select patindex("帮助",@local_variant)

--获得帮助前的数据

set @change_data = select substring(@local_variant,1,@location-1)

--第一条数据处理完成,可以插入了

insert into table2(select issid ,a,b,c from table1)AS A value(@change_data,Aissid,Aa,Ab,Ac,e)where issid = "1"

你可以用while循环补全。

name="张四,李三,五五";

sql="select from [user] where [name] in (";

string[] namearray=namesplit(',');//"&name&")

for(int i=0;i<namearraylength;i++)

{

sql+="''&namearray[i]&"'";

}

sql+=")";

这样就得到你想要的SQL语句了。

我使用的是Delphi5在Delphi自带的SQL

Explore

使用

SQL语句"select

from

syscolumns

"这条简单的语句的如果创建数据库别名时数据库类型用MSSQL,即通过Micrsosoft

SQL

Server

2000与数据库连接,这时使用SQL语句"select

from

syscolumns

"返回的结果中包括"name"字段;如果创建数据库别名时数据库类型用SQL

Server,即通过ODBC数据源与数据库连接,这时使用SQL语句"select

from

syscolumns

"返回的结果中就不包括"name"字段,好像返回的记录数倒是相同你们说奇不奇怪用'sp_pkeys

tablename'也出现类似的现象:无'COLUMN_NAME'字段!与本地数据库连接,结果也是如此!不信吗?我试过好几台机子!!!

我之所以测试用ODBC与异地数据库进行连接是由于ODBC驱动程序是windows(Win2000)系统自带的,不需要额外再用专门的Micrsosoft

SQL

Server!请楼上的各位兄弟帮忙解决!

以上就是关于sql查询表中字段全部的内容,包括:sql查询表中字段、如何在Sql2008中获取表字段属性和注释、C#如何读取SQL中的某个字段的值 并拿出来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10146330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存