首页 新闻 搜索 专区 学院

带有指定建表人信息的sqlserver表的建表语句怎么写

0
悬赏园豆:50 [已解决问题] 解决于 2011-04-25 14:05

带有指定建表人信息的sqlserver表的建表语句怎么写? 就是说在表的上面有一行是显示建表人的信息,下面才是表的内容,这种表能建不?

技术新手的主页 技术新手 | 初学一级 | 园豆:125
提问于:2011-02-28 09:34
< >
分享
最佳答案
0

create schema 所有者
create table 所有者.table1(id int)
所有者为数据库的一个用户

收获园豆:50
artwl | 专家六级 |园豆:16536 | 2011-03-01 09:48
其他回答(3)
0

Create table(

ID int,

tableCreater varchar(50)

)

keepsilence | 园豆:427 (菜鸟二级) | 2011-02-28 10:43
不是这个,是在表的上面有一行显示表的建表人的信息,然后才是表的内容
支持(0) 反对(0) 技术新手 | 园豆:125 (初学一级) | 2011-02-28 10:46
0

Extend Properties 就可以了。参考这个存储过程sp_addextendedproperty ,还有sp_updateextendeproperty。

http://msdn.microsoft.com/zh-cn/library/ms180047.aspx

沉默的糕点 | 园豆:1786 (小虾三级) | 2011-02-28 11:06
0
CREATE TABLE [dbo].[TableName]
(
...
)

GO

EXEC sys.sp_addextendedproperty @name=N'Creator', @value=N'Handsome' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TableName'
GO

EXEC sys.sp_addextendedproperty @name=N'Date', @value=N'2011-02-28' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TableName'
GO
彭汉生 | 园豆:1233 (小虾三级) | 2011-02-28 11:27
能不能详细解释下
支持(0) 反对(0) 技术新手 | 园豆:125 (初学一级) | 2011-02-28 11:30
sys.sp_addextendedproperty 对象无效
支持(0) 反对(0) 技术新手 | 园豆:125 (初学一级) | 2011-02-28 11:32
参考SQL帮助

语法

sp_addextendedproperty
[ @name = ] { 'property_name' }
[ , [ @value = ] { 'value' }
[ , [ @level0type = ] { 'level0_object_type' }
, [ @level0name = ] { 'level0_object_name' }
[ , [ @level1type = ] { 'level1_object_type' }
, [ @level1name = ] { 'level1_object_name' }
[ , [ @level2type = ] { 'level2_object_type' }
, [ @level2name = ] { 'level2_object_name' }
]
]
]
]


备注
为了指定扩展属性,SQL Server 数据库中的对象分为三个级别(0、1 和 2)。级别 0 是最高级别,定义为包含在数据库作用域中的对象。级别 1 的对象包含在架构作用域或用户作用域中,而级别 2 的对象包含在级别 1 对象中。可以为这些级别中任一级别的对象定义扩展属性。

引用某个级别中的对象必须用拥有或包含它们的更高级别对象的名称进行限制。例如,当将扩展属性添加到表列(级别 2)时,还必须指定包含该列的表名(级别 1)以及包含该表的架构(级别 0)。

有关对象及其有效的级别 0、1 和 2 类型的完整列表,请参阅对数据库对象使用扩展属性。

如果所有对象类型和名称都为空,则属性属于当前数据库本身。

对于系统对象、用户定义数据库的作用域以外的对象或者未在 Arguments 中作为有效输入列出的对象,不允许使用扩展属性。

架构与用户
在 SQL Server 的早期版本中,用户拥有表、视图和触发器之类的数据库对象。因此,允许将扩展属性添加到这些对象之一以及将用户名指定为级别 0 类型。但在 SQL Server 2005 中,数据库对象包含在架构中。它们独立于拥有架构的用户。

在 SQL Server 2005 中,我们建议不要在将扩展属性应用于数据库对象时指定 USER 作为级别 0 类型,因为这会导致名称解析不明确。例如,假定用户 Mary 拥有两个架构(Mary 和 MySchema),并且这两个架构都包含名为 MyTable 的表。如果 Mary 将扩展属性添加到表 MyTable 并指定 @level0type = N'USER'、@level0name = Mary,则扩展属性应用于哪个表并不明确。为了保持向后兼容,SQL Server 将属性应用于名为 Mary 的架构所包含的表。有关用户与架构的详细信息,请参阅用户架构分离。

参数
[ @name ] = { 'property_name' }
要添加的属性的名称。property_name 的数据类型为 sysname,不能为 NULL。名称还可以包括空格或非字母数字字符串以及二进制值。

[ @value = ] { 'value' }
要与属性关联的值。value 的数据类型为 sql_variant,默认值为 NULL。value 的大小不能超过 7,500 个字节。

[ @level0type = ] { 'level0_object_type' }
级别 0 对象的类型。level0_object_type 的数据类型为 varchar(128),默认值为 NULL。

有效的输入包括:ASSEMBLY、CONTRACT、EVENT NOTIFICATION、FILEGROUP、MESSAGE TYPE、PARTITION FUNCTION、PARTITION
支持(0) 反对(0) 彭汉生 | 园豆:1233 (小虾三级) | 2011-02-28 13:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册