现象:
在PowerDesigner 16 中生成的sql语句,在执行的时候报错:对象名sysproperties 无效的错误;
原因分析:
造成此问题的原因是由于Sql 2005、2008 删除了系统表 sysproperties 而改用 sys.extended_properties 表所致 , 以下是通过创建sysproperties视图,以及修改powerdesigner sql语句生成模板后,再生成数据库SQL脚本执行,共分为三部:
第一步:
在Sql 2005/2008/2012查询分析器中执行下面的 Sql 语句创建View 'sysproperties'
if exists (select 1 from sysobjects where name = 'sysproperties'and xtype = 'V')
begin
DROP VIEW sysproperties
end
GO
CREATE VIEW sysproperties
AS
SELECT A.name As TableName,
A.id As TableID,B.Name As ColName,B.colid As ColID,
B.xtype As ColType,C.name As PropName,C.Value As PropValue
FROM sysobjects As A INNER JOIN syscolumns As B ON A.id = B.id
INNER JOIN sys.extended_properties As C ON C.major_id = A.id
AND ( minor_id = B.colid)
第二 步:
修改Table TableComment模板 路径是 Database -> Edit Current DBMS 窗体 General 选项卡 下 Script -> Objects -> Table -> TableComment
[if exists (select 1
from sys.extended_properties
where major_id = object_id('[%QUALIFIER%]%TABLE%')
and minor_id = 0 and name = 'MS_Description')
begin
[%OWNER%?[.O:[execute ][exec ]]sp_dropextendedproperty [%R%?[N]]'MS_Description',
[%R%?[N]]'user', [%R%?[N]]%.q:OWNER%, [%R%?[N]]'table', [%R%?[N]]%.q:TABLE%
:declare @CurrentUser sysname
select @CurrentUser = user_name()
[.O:[execute ][exec ]]sp_dropextendedproperty [%R%?[N]]'MS_Description',
[%R%?[N]]'user', [%R%?[N]]@CurrentUser, [%R%?[N]]'table', [%R%?[N]]%.q:TABLE%
]
end
][%OWNER%?[.O:[execute ][exec ]]sp_addextendedproperty [%R%?[N]]'MS_Description',
[%R%?[N]]%.q:COMMENT%,
[%R%?[N]]'user', [%R%?[N]]%.q:OWNER%, [%R%?[N]]'table', [%R%?[N]]%.q:TABLE%
:select @CurrentUser = user_name()
[.O:[execute ][exec ]]sp_addextendedproperty [%R%?[N]]'MS_Description',
[%R%?[N]]%.q:COMMENT%,
[%R%?[N]]'user', [%R%?[N]]@CurrentUser, [%R%?[N]]'table', [%R%?[N]]%.q:TABLE%
]
第三步:
修改Column ColumnComment模板 路径是 Database -> Edit Current DBMS 窗体 General 选项卡 下 Script -> Objects -> Column -> ColumnComment
[if exists (select 1
from sysproperties
where TableID = object_id('[%QUALIFIER%]%TABLE%')
and ColName = %.q:COLUMN% AND PropName='MS_Description')
begin
[%OWNER%?[.O:[execute ][exec ]]sp_dropextendedproperty [%R%?[N]]'MS_Description',
[%R%?[N]]'user', [%R%?[N]]%.q:OWNER%, [%R%?[N]]'table', [%R%?[N]]%.q:TABLE%, [%R%?[N]]'column', [%R%?[N]]%.q:COLUMN%
:declare @CurrentUser sysname
select @CurrentUser = user_name()
[.O:[execute ][exec ]]sp_dropextendedproperty [%R%?[N]]'MS_Description',
[%R%?[N]]'user', [%R%?[N]]@CurrentUser, [%R%?[N]]'table', [%R%?[N]]%.q:TABLE%, [%R%?[N]]'column', [%R%?[N]]%.q:COLUMN%
]
end
][%OWNER%?[.O:[execute ][exec ]]sp_addextendedproperty [%R%?[N]]'MS_Description',
[%R%?[N]]%.q:COMMENT%,
[%R%?[N]]'
SELECT
--表名=case when a.colorder=1 then d.name else '' end,
--表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
表名=d.name,
表说明=isnull(f.value,'') ,
字段序号=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 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.xtype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e on a.cdefault=e.id
left join sys.extended_properties g on a.id=g.major_id and a.colid=g.minor_id
left join sys.extended_properties f on d.id=f.major_id and f.minor_id =0
--where d.name='要查询的表' --如果只查询指定表,加上此条件
order by d.name,a.id,a.colorder
本文链接
服务类型
服务是一种在系统后台运行的应用程序。服务通常提供一些核心操作系统功能,MS SQL有下面一些服务。
服务类型
服务描述
SQL Server
提供数据的存储、处理和受控访问,并提供快速的事务处理
Analysis Server
为商业智能应用程序提供联机分析处理(OLAP)和数据挖掘功能。
SQL Browser
将 SQL Server 连接信息提供给客户端计算机
FullText Search
快速创建结构化和半结构化数据的内容和属性
ReportServer
管理、执行、呈现、计划和传递报表。
SQL Agent
执行作业、监视 SQL Server、激发警报,以及允许自动执行某些管理任务。
SSIS Server
为 SSIS 包的存储和执行提供管理支持。
启动停止服务
您可以使用下列工具配置 Microsoft SQL Server 服务,以及启动、暂停或停止这些服务。当然像SQL Server Management Studio是不能启动SQL Server服务的,但是像
SQL Server代理等服务是可以启动的。
· SQL Server Management Studio
· SQL Server 配置管理器
· net 命令
· 服务
SQL Server Management Studio 和SQL Server配置管理器启动服务就不介绍了,这个很简单也很常用。下面简单说一下用net命令来启动服务。
net命令
启动 SQL Server 的默认实例
net start "SQL Server (MSSQLSERVER)"
或 net start MSSQLSERVER
启动 SQL Server 的命名实例
net start "SQL Server (GSP)"
net start MSSQL$GSP
使用启动选项启动 SQL Server
net start "SQL Server (MSSQLSERVER)" /f /m
或
net start MSSQLSERVER /f /m
默认启动选项
说明
-d master_file_path
master 数据库文件的完全限定路径(通常为:C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\master.mdf)。如果没有提供此选项,则使用现有的注册表参数。
-e error_log_path
错误日志文件的完全限定路径(通常为:C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG)。如果没有提供此选项,则使用现有的注册表参数。
-l master_log_path
master 数据库日志文件的完全限定路径(通常为:C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\mastlog.ldf)。如果没有指定此选项,则使用现有的注册表参数。
其它一些启动选项来临时覆盖默认启动选项并启动 SQL Server 实例。
其他启动选项
说明
-c
缩短从命令提示符启动 SQL Server 时的启动时间。通常,SQL Server 数据库引擎通过调用服务控制管理器作为服务启动。由于从命令提示符启动时,SQL Server 数据库引擎不作为服务启动,因此请使用 -c 跳过此步骤。
-f
以最小配置启动 SQL Server 实例。在配置值的设置(如过度分配内存)防碍服务器启动时,这非常有用。
-g memory_to_reserve
指定 SQL Server 为在 SQL Server 进程之内,但在 SQL Server 内存池之外分配内存而保留的内存整数量 (MB)。内存池以外的内存是指 SQL Server 用于加载诸如下列项目的区域:扩展过程 .dll 文件、分布式查询引用的 OLE DB 访问接口以及 Transact-SQL 语句中引用的自动化对象。文件大小的默认值为 256 MB。
使用此选项可帮助优化内存分配,但仅限于物理内存超过操作系统设置的应用程序可用虚拟内存配置限制时。如果 SQL Server 的内存使用要求异乎寻常,并且 SQL Server 进程的虚拟地址空间都在使用,则对于这样的大内存配置适合使用此选项。对此选项的不当使用会导致 SQL Server 实例无法启动或遇到运行时错误。
除非在 SQL Server 错误日志中看到下列任何警告,否则应使用 -g 参数的默认值:
"Failed Virtual Allocate Bytes: FAIL_VIRTUAL_RESERVE <size>"
"Failed Virtual Allocate Bytes: FAIL_VIRTUAL_COMMIT <size>"
这些消息可能指示 SQL Server 尝试释放部分 SQL Server 内存池空间,以便为扩展存储过程 .dll 文件或自