惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
腾讯CDC
博客园 - 聂微东
爱范儿
爱范儿
罗磊的独立博客
P
Proofpoint News Feed
博客园 - Franky
博客园 - 三生石上(FineUI控件)
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 司徒正美
美团技术团队
MongoDB | Blog
MongoDB | Blog
WordPress大学
WordPress大学
A
About on SuperTechFans
I
InfoQ
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog

博客园 - 阿哲

将Visio文件装换成HTML文件(在服务器上转换,客户端无需安装visio即可查看) string:值类型?引用类型?[转] SqlServer2005常用sql语句 SQL中FOR XML子句的各种用法 获得Windows中文件类型名称 完成类似QQ邮箱中‘HTML方式查看’功能查看Office文件 vs2008生成自定义dll,VS2008发布、生成网站时设置固定的dll文件名 开源.Net CMS系统 [转] 测试使用Windows Live Writter写Blog 试用Windows Live Mail OutlookExpress使用技巧 剩余的GMail邀请 实体类+自定义控件=? 用反射+特性列出所有的枚举变量及其描述信息,绑定到DropDownList上。 有关.NET和RS232设备通讯 .NET资源(收藏) 转:使用P/Invoke来开发用于与串行设备通讯的.NET基类(翻译) 最近有空,研究了一下.NET的通讯方面 实体和实体的集合-续2
SqlServer 2005 快速设置字段/表 的描述字段
阿哲 · 2009-05-26 · via 博客园 - 阿哲

在做数据库设计的时候,字段/表的 描述/备注 字段设置非常重要,在使用orm工具生成代码的时候也要读取 描述/备注 的内容,当然在设计器的时候添加这些信息还是比较方便的,但是使用sql脚本的时候,看起来就很复杂了。

我先想能不能直接在create table的时候直接添加描述字段,不过找遍了sql的语法也不支持这种写法,使用sp_addextendedproperty 我又感觉太麻烦,很多没必要的参数设置,于是自己写了一个存储过程来进行快速的设置:

Code
/****** 对象:  StoredProcedure [dbo].[SetDescription]    脚本日期: 05/22/2009 13:46:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE dbo.SetDescription
(
    
@Description sql_variant,
    
@TableName sysname,
    
@ColumnName sysname=NULL
)
AS
BEGIN
    
IF (@ColumnName IS NULL)
      
BEGIN
        
IF EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_Description', N'USER',N'dbo', N'TABLE',@TableNameNULLNULL))
            
EXEC sp_dropextendedproperty @name=N'MS_Description'@level0type=N'USER',@level0name=N'dbo'@level1type=N'TABLE',@level1name=@TableName
        
EXEC sp_addextendedproperty @name=N'MS_Description'@value=@Description@level0type=N'USER',@level0name=N'dbo'@level1type=N'TABLE',@level1name=@TableName
      
END
    
ELSE
      
BEGIN 
        
IF EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_Description', N'USER',N'dbo', N'TABLE',@TableName, N'COLUMN',@ColumnName))
            
EXEC sp_dropextendedproperty @name=N'MS_Description'@level0type=N'USER',@level0name=N'dbo'@level1type=N'TABLE',@level1name=@TableName@level2type=N'COLUMN',@level2name=@ColumnName    
        
EXEC sp_addextendedproperty @name=N'MS_Description'@value=@Description@level0type=N'USER',@level0name=N'dbo'@level1type=N'TABLE',@level1name=@TableName@level2type=N'COLUMN',@level2name=@ColumnName
      
END
END
GO

使用如下:

EXEC dbo.SetDescription N'功能描述',N'sys_Functions',N'FRemark'  --更改表 sys_Functions 的字段 FRemark 的描述为:功能描述
EXEC dbo.SetDescription N'功能表',N'sys_Functions'            --更改表 sys_Functions 的描述为:功能表
GO