您好,欢迎访问一九零五行业门户网

知识小结(SQLServer)

1)数据库中nvarchar()和nchar()的区别 在做ssis项目中用到数据库字段类型为nchar()的与类型为nvarchar()去关联,但是一直关联不上,去数据库中查询也感觉没有问题,后面一看感觉nchar()后面的后面有很多空,update之后还是有空,后面把nchar()类型改为nvarch
1)数据库中nvarchar()和nchar()的区别
在做ssis项目中用到数据库字段类型为nchar()的与类型为nvarchar()去关联,但是一直关联不上,去数据库中查询也感觉没有问题,后面一看感觉nchar()后面的值后面有很多空格,update之后还是有空格,后面把nchar()类型改为nvarchar()之后,ssis就没有问题了,所有以后数据库设计中字段类型需要统一用narchar()
2)xp sp3安装sqlserver2005的时候,运行安装程序就出错:
summary.txt中只有:
microsoft sql server 2005 9.00.4035.00
==============================
os version      : microsoft windows xp professional service pack 3 (build 2600)
time            : tue may 24 23:09:20 2011
解决办法:
1)由于系统中的office是gost进去的,下载office 2003完整版本,找到owc11.msi点击安装,对此进行修复操作后,再安装sql server 2005 成功
2)可能操作系统是克隆的,所以需要重新去安装系统。
3)sqlserver2005最好是安装在服务器的系统上才可以。
3)执行下面语句时select * from dim_factoryquestionclass where gid_system_factory='f4a552e9-b151-4098-ba52-f7f7a4ee82e'
出现错误:
conversion failed when converting from a character string to uniqueidentifier.
解决办法:'f4a552e9-b151-4098-ba52-f7f7a4ee82e'不是标准的guid格式
4)update的问题
想把一张表的一列更新到另外一张表中
update dim_wongcomparequestionitem d set d.wongmsg=(select wongmsg from dim_wongcomparequestionitem_0615_back a where d.gid_wongcomparequestionitem=a.gid_wongcomparequestionitem)
报错,不支持,所以这样改:
update dim_wongcomparequestionitem set wongmsg=(select wongmsg from dim_wongcomparequestionitem_0615_back a where dim_wongcomparequestionitem.gid_wongcomparequestionitem=a.gid_wongcomparequestionitem)
update dim_wongcomparequestionitem set wongmsg=(select --e.*,c.questionnumber,a.itemcode,a.itemname,d.questionnumber,b.itemcode,b.itemname,case when e.needflag='0' then c.questionnumber+'题选择'+a.itemcode+'时,则'+d.questionnumber+'题不能选择'+b.itemcode else c.questionnumber+'题选择'+a.itemcode+'时,则'+d.questionnumber+'题应选择'+b.itemcode end tt from dim_wongcomparequestionitem e left join dim_factoryquestionitem a on a.gid_factoryquestionitem=e.gid_factoryquestionitem left joindim_factoryquestionitem b on b.gid_factoryquestionitem=e.gid_factoryquestionitemcompare left joindim_factoryquestionlist c on c.gid_factory_questionlist= a.gid_factory_questionlist left joindim_factoryquestionlist d on d.gid_factory_questionlist= b.gid_factory_questionlistwhere e.gid_wongcomparequestionitem=dim_wongcomparequestionitem.gid_wongcomparequestionitem)
5)2011-11-1碰到的sql
更新表qirui中凡是float类型(typestat=0)的字段,而且字段中数据是99的那个值修改为该字段其它值得平均值
declare @sql varchar(max)declare @t varchar(255)set @t='qirui'select @sql=isnull(@sql,'')+'update '+@t+' set ' +name+'=(select avg('+ name+') from dbo.qirui where '+ name +'99) where '+ name + '=99' from ( select distinct name from syscolumns where id=object_id(@t) and typestat=0 ) a exec(@sql)
6)sql 2005 pivot 行列互换
select* from studentscorepivot ( sum(score) for subject in ([语文],[数学],[化学],[物理]))as b
7)打开“数据库关系图”提示:
此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或alter authorization语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象。
解决办法:
执行以下命令:
alter authorization on database::mydbname to sa
8)下面的语句将返回位于tablea但是不位于tableb中的行,分析这两个表可以看出,tablea中只有coll为2的行在tableb中不存在,返回结果下表所示。
select * from tablea
except
select * from tableb;
10)sql server 阻止了对组件 'ole automation procedures' 的 过程'sys.sp_oacreate' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configur
sys.sp_oamethod' of component 'ole automation procedures
执行下面语句:
sp_configure 'ole automation procedures', 1;
go
reconfigure;
go
11)sqlserver 2008 日志收缩
use db_satisfaction;
go
-- truncate the log by changing the database recovery model to simple.
alter database db_satisfaction
set recovery simple;
go
-- shrink the truncated log file to 1 mb.
dbcc shrinkfile (db_satisfaction_log, 10);
go
-- reset the database recovery model.
alter database db_satisfaction
set recovery full;
go
12)卸载sqlserver 2008后重新安装时出现如下错误:
本地计算机 上的 sql server analysis services (mssql2008) 服务启动后又停止了。一些服务自动停止,如果它们没有什么可做的,例如“性能日志和警报”服务。
解决办法:
清除本机的应用程序日志即可
13)win8中sqlserver2008 32位,导入office2007 excel文件,出现如下错误:
在与 sql server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 sql server 已配置为允许远程连接。 (provider: sql 网络接口, error: 26 - 定位指定的服务器/实例时出错)
解决办法:
use [master] go exec master.dbo.sp_msset_oledb_prop n'microsoft.ace.oledb.12.0',n'allowinprocess',1 go exec master.dbo.sp_msset_oledb_prop n'microsoft.ace.oledb.12.0',n'dynamicparameters',1 go
链接服务器——获取excel数据
13)sqlserver 2008通过导sql脚本转换到sqlserver 2005后会出现中文不支持的情况
通过修改排序规则,修改为chinese_prc_ci_as
alter database db_mystatisinfomazda collate chinese_prc_ci_as
14)错误 1 命名空间“microsoft.practices.enterpriselibrary”中不存在类型或命名空间名称“data”。是否缺少程序集引用? vs2012打开vs2008项目时出现如上错误
造成这个错误的原因是因为工程属性中的目标框架,默认选项是“.net framework 4 client profile”, client profile是.net framework框架的子集,目标是为快速发布。但现在enterprise library 5.0似乎还需要client profile以外而完整版本包括的oracleclient相关的程序集,所以这里我们将目标框架其修改“.net framework 4.0”再进行编译,就可以通过了。
--sql server2008收缩日志方法
第一种办法
--1)
alter database db_mystatisinfopa_2014 set recovery simple   --简单模式
go
--2)右键-任务-收缩-文件-确定 下来数据库的日志只保留了1m
--3)
alter database db_mystatisinfopa_2014 set recovery full  --还原为完全模式
go
第二种办法:
--查询日志文件名称
--select name, size from sys.database_files
use [master] 
go 
alter database db_satisfaction_faw set recovery simple with no_wait
go 
alter database db_satisfaction_faw set recovery simple --简单模式 
go 
use db_satisfaction_faw
go 
dbcc shrinkfile (n'db_satisfaction_log' , 11, truncateonly)
go 
use [master] 
go 
alter database db_satisfaction_faw set recovery full with no_wait
go 
alter database db_satisfaction_faw set recovery full --还原为完全模式 
go
15)sql server 2008“阻止保存要求重新创建表的更改
如果强行更改会出现以下提示:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。
解决方法:
工具-〉选项-〉左侧有个 设计器-〉表设计器和数据库设计器 -> 阻止保存要求重新创建表的更改(右侧) 把钩去掉即可。
15)sqlserver2008
checks 字段类型为float,checks 值为0.98
select * from wave_revise where checks >=0.98
查询不出来
select * from wave_revise where  checks >=0.979999
查询的出来
解决方法:
select * from wave_revise cast(checks as decimal(18,2)) >=0.98
转换一下就可以查询出来了
16)数据库sql server2008误操作数据库恢复
恢复数据库第三方工具:
recovery for sql server
http://www.cnblogs.com/dudu/archive/2011/10/15/sql_server_recover_deleted_records.html
17)导入excel文件时出现如下错误
“excelreader”的类型初始值设定项引发异常
未能加载文件或程序集microsoft.office.interop.excel解决未在本地计算机上注册 microsoft.jet.oledb.4.0 提供程序
解决办法:
http://blog.fend.cn/archives/173.html
http://www.mycodes.net/78/6296.htm
18)浏览器兼容模式造成的如下错误
0x800a139e - javascript 运行时错误: sys.parametercountexception: 参数计数不匹配
解决办法:
这个是由于ie浏览器升级之后出现的问题,需要设置ie浏览器的兼容性模式,把网站添加进去
http://jingyan.baidu.com/article/15622f2472c112fdfcbea5e9.html
http://jingyan.baidu.com/article/466506580d9828f549e5f8d1.html
19)sqlserver2008的数据库转为sqlserver2005后需要调整字符
alter database db_satisfaction_faw collate chinese_prc_ci_as
其它类似信息

推荐信息