select object_name(id) as 表名
,c.name as 字段名
,t.name 数据类型
,c.prec as 长度
from syscolumns c
inner join
systypes t
on c.xusertype=t.xusertype
where c.id=object_id('VIEW_TEST ')
,c.name as 字段名
,t.name 数据类型
,c.prec as 长度
from syscolumns c
inner join
systypes t
on c.xusertype=t.xusertype
where c.id=object_id('VIEW_TEST ')
解决方案 »
- SQL初学者求助 题目 求解答
- /*----根据一个值输出多行-----*/
- SQL 服务器连不上...................................
- 求一条简单的 SQL 查询语句([ODBC;Driver=SQL Server;Server=perry;Uid=sa;pwd=;Database=ServeMicroStar])
- datediff判断时间
- 哪位有《数据库系统概论》作者 萨师煊 王珊 的电子版的?
- 关于OLAP的一个问题(急)
- 求怎样用一sql替代2层游标
- 如何 删除一个数据库里的 外键 主键 和约束 在系统表里如何递归查找他们的依赖关系?
- 根跟据查询结果显示自定义字符
- T-sql算法优化
- 在 SQL SERVER 2005中创建登录器
视图名 = CASE WHEN A.COLORDER=1 THEN D.NAME ELSE '' END,
视图说明 = CASE WHEN A.COLORDER=1 THEN ISNULL(F.VALUE,'') ELSE '' END,
字段序号 = A.COLORDER,
字段名 = A.NAME,
标识 = CASE WHEN COLUMNPROPERTY( A.ID,A.NAME,'ISIDENTITY')=1 THEN '√'ELSE '' END,
主键 = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE='PK' AND PARENT_OBJ=A.ID AND NAME IN (
SELECT NAME FROM SYSINDEXES WHERE INDID IN(
SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN '√' ELSE '' END,
类型 = B.NAME,
占用字节数 = A.LENGTH,
长度 = COLUMNPROPERTY(A.ID,A.NAME,'PRECISION'),
小数位数 = ISNULL(COLUMNPROPERTY(A.ID,A.NAME,'SCALE'),0),
允许空 = CASE WHEN A.ISNULLABLE=1 THEN '√'ELSE '' END,
默认值 = ISNULL(E.TEXT,''),
字段说明 = ISNULL(G.[VALUE],'')
FROM
SYSCOLUMNS A
LEFT JOIN
SYSTYPES B
ON
A.XUSERTYPE=B.XUSERTYPE
INNER JOIN
SYSOBJECTS D
ON
A.ID=D.ID AND D.XTYPE='V' AND D.NAME='视图名称'
LEFT JOIN
SYSCOMMENTS E
ON
A.CDEFAULT=E.ID
LEFT JOIN
SYSPROPERTIES G
ON
A.ID=G.ID AND A.COLID=G.SMALLID
LEFT JOIN
SYSPROPERTIES F
ON
D.ID=F.ID AND F.SMALLID=0
ORDER BY
A.ID,A.COLORDER
可以执行起来,好像不太符合我的需求,我现在是这样的视图这样的结构
column alias table ....
abc table1
aaa aaali table2
bbb table1
ddd dddli table2
我们需要求出来的结构是
alias table tablecolumn(在table中的列名) tabletype tablelength
table1 abc ... ...
aaali table2 aaa ... ..
table1 bbb ... ...
dddli table2 ddd ... ...
Msg 208, Level 16, State 1, Line 1
Invalid object name 'SYSPROPERTIES'.
1.select * from information_schema.view_column_usage
where view_name='viewname'
获取视图的信息(列名、和基表)
2.exec sp_help 'vAdhocActivities'
根据这个判断出字段是否有别名
3.select object_name(id) as 表名
,c.name as 字段名
,t.name 数据类型
,c.prec as 长度
from syscolumns c
inner join
systypes t
on c.xusertype=t.xusertype
where c.id=object_id('tablename')
根据这个拿表里信息不知道是不是很SB..
包含数据库中每个视图、规则、默认值、触发器、CHECK 约束、DEFAULT 约束和存储过程的项。text 列包含原始的 SQL 定义语句。这些语句的最大大小为 4 MB。
CREATE VIEW dbo.vilename AS SELECT dbo.ApplicationCustomer.FirstName, dbo.ApplicationCustomer.LastName, CAST(dbo.ApplicationCustomer.DateOfBirth AS datetime) AS DateOfBirth, ISNULL(dbo.ClientAddress.StreetNumber, N'') + ' ' + ISNULL(dbo.ClientAddress.DirectionPrefix, N'') + ' ' + ISNULL(dbo.ClientAddress.StreetName, N'') + ' ' + ISNULL(dbo.ClientAddress.StreetType, N'') + ' ' + ISNULL(dbo.ClientAddress.DirectionSuffix, N'') AS ClientAddress1, .....这是几个典型的.. 很难分析出来,而且我不确保其他视图是否还有其他的格式..