use Roy --数据库
创新互联建站-专业网站定制、快速模板网站建设、高性价比新邱网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式新邱网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖新邱地区。费用合理售后完善,10多年实体公司更值得信赖。
go
--2005实现数据库表字段属性统计(2000里的系统表sysproperties描述表不存在,2005里用sys.extended_properties视图替代)
select
[表名]=c.Name,
[表说明]=isnull(f.[value],''),
[列名]=a.Name,
[列序号]=a.Column_id,
[标识]=case when is_identity=1 then '√' else '' end,
[主键]=case when exists(select 1 from sys.objects x join sys.indexes y on x.Type=N'PK' and x.Name=y.Name
join sysindexkeys z on z.ID=a.Object_id and z.indid=y.index_id and z.Colid=a.Column_id)
then '√' else '' end,
[类型]=b.Name,
[字节数]=case when a.[max_length]=-1 and b.Name!='xml' then 'max/2G'
when b.Name='xml' then '2^31-1字节/2G'
else rtrim(a.[max_length]) end,
[长度]=case when ColumnProperty(a.object_id,a.Name,'Precision')=-1 then '2^31-1'
else rtrim(ColumnProperty(a.object_id,a.Name,'Precision')) end,
[小数]=isnull(ColumnProperty(a.object_id,a.Name,'Scale'),0),
[是否为空]=case when a.is_nullable=1 then '√' else '' end,
[列说明]=isnull(e.[value],''),
[默认值]=isnull(d.text,'')
from
sys.columns a
left join
sys.types b on a.user_type_id=b.user_type_id
inner join
sys.objects c on a.object_id=c.object_id and c.Type='U'
left join
syscomments d on a.default_object_id=d.ID
left join
sys.extended_properties e on e.major_id=c.object_id and e.minor_id=a.Column_id and e.class=1
left join
sys.extended_properties f on f.major_id=c.object_id and f.minor_id=0 and f.class=1
1、你用什么打开的?2、如果使用客户端(比如微软的mssql),你就可以看到表结构。mysql可以命令行 desc table。3、如果你想知道ER关系,可以使用诸如powerdesigner等工具来reserv数据库。
sqlserver在同一个数据库里复制表结构的具体操作步骤如下:
1、首先,选中目标数据库然后点击任务导入数据:
2、然后,进入SQL Server导入导出向导:
3、选择数据源(源数据库):
4、选择目标(目标数据库)、指定表复制或查询:
5、最后勾选复制表数据,然后点击完成,这样数据库软件就会自动复制表的数据了:
应该是第二种比较好,至于你说的类型名称,你可以在NewsInfo 里面建一个冗余字段,来拼接一个名称,用于显示用,但是查询的话,你可以使用一个exist来关联那个关系表。因为只有拉一个关系表出来才能更好的维护这个类型的数据。
SQL Server 中的 架构 ( schema )
与 软件构架 与 架构师 的不是同一个概念
schema 是用于 在一个 大项目中的 各个 小项目
每个 小项目的表, 放在 各自的 schema 下面.
这样, 遇到 小项目里面. 有 相同名字的 表的话, 不会发生冲突.
例如一个 公司的 系统.
里面分2个 子系统, 分别为 财务系统 和 人力资源系统.
这2个 子系统, 共用一个数据库
.
那么 财务系统的表, 可以放在 财务的 schema.
人力资源系统的表,放在 人力资源系统的模式里面。
这2个 子系统, 能够 互相访问 对方的表
但是又不因为 表重名 的问题,影响对方。
体系结构是下面这个样子的
[服务器名称].[数据库名称].[构架名称].[表名]
create database -- 创建一个数据库
create schema -- 创建一个构架
当你在 SQL Server 里面, 使用 create database 创建一个数据库以后。
你可以不必额外的去创建 schema
因为 SQL Server 会 自动的创建一个 名字叫 dbo 的 schema