sql server数据库的列信息查看的方法是最常用的操作方法之一,本文为您详述了怎么使用T-Sql语句, 在sql server 2005中提取一个数据表的列的详细信息的方法,并附sql server的开发实例,供您参考,希望对您有所帮助。
创新互联专注于企业成都全网营销、网站重做改版、利州网站定制设计、自适应品牌网站建设、H5响应式网站、商城开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为利州等各大城市提供网站开发制作服务。
下面介绍的是名为sp_GetColumnsInfo的存储过程,示例中使用了微软提供的AdventureWorks数据库。
USE AdventureWorks;
--Method I: Using System Store Procedure
EXEC SP_COLUMNS @table_name = N'Employee'
GO
--Method II: Using T-Sql Statement
--If existed, delete the store procedure
IF EXISTS (
SELECT *
FROM INFORMATION_SCHEMA.ROUTINES
WHERE SPECIFIC_SCHEMA = N'dbo'
AND SPECIFIC_NAME = N'sp_GetColumnsInfo'
)
DROP PROCEDURE [dbo].sp_GetColumnsInfo
GO
--create store procedure, two parameters schema name and table name
CREATE PROCEDURE sp_GetColumnsInfo
@schema NVARCHAR(100),
@tablename NVARCHAR(100)
AS
BEGIN#p#
SELECT
[columns].NAME AS [Name],
[usertype].NAME AS [DataType],
ISNULL([basetype].NAME, N'') AS [SystemType],
CAST(CASE WHEN [basetype].NAME IN (N'nchar', N'nvarchar') AND [columns].max_length <> -1 THEN
[columns].max_length/2 ELSE [columns].max_length END AS INT) AS [Length],
CAST([columns].PRECISION AS INT) AS [NumericPrecision]
FROM
SYS.TABLES AS [table]
INNER JOIN SYS.ALL_COLUMNS AS [columns] ON [columns].OBJECT_ID=[table].OBJECT_ID
LEFT OUTER JOIN SYS.TYPES AS [usertype] ON [usertype].user_type_id = [columns].user_type_id
LEFT OUTER JOIN SYS.TYPES AS [basetype] ON [basetype].user_type_id = [columns].system_type_id and [basetype].user_type_id = [basetype].system_type_id
WHERE
([table].NAME=@tablename and SCHEMA_NAME([table].schema_id)=@schema)
ORDER BY
[columns].column_id ASC
END
EXEC sp_GetColumnsInfo @schema = N'HumanResources', @tablename = N'Employee'
结果显示
(16 row(s) affected)
【编辑推荐】
SQL Server2005中跨库执行SQL语句的方法
SqlServer数据库中的分页语句
SQL Server中存储过程慢于SQL语句直接执行的原因
SQL SERVER数据库中存储过程使用循环语句
Sql Server两个版本中显示所有表信息的语句
新闻标题:sqlserver中查看列详细信息的语句
本文路径:http://www.shufengxianlan.com/qtweb/news41/488141.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联