知识小结(SQLServer)
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 ? 解决办法: ? 1)由于系统中的Office是GOST进去的,下载office 2003完整版本,找到OWC11.MSI点击安装,对此进行修复操作后,再安装SQL Server 2005 成功 2)可能操作系统是克隆的,所以需要重新去安装系统。 3)SQLSERVER2005最好是安装在服务器的系统上才可以。 ? 3)执行下面语句时 出现错误: Conversion failed when converting from a character string to uniqueidentifier. ? 解决办法:'F4A552E9-B151-4098-BA52-F7F7A4EE82E'不是标准的GUID格式 ? ?4)Update的问题 想把一张表的一列更新到另外一张表中 报错,不支持,所以这样改: ?? ? 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)
select* FROM StudentScore PIVOT ( 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; 11)sqlserver 2008 日志收缩 USE DB_Satisfaction; 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) 第二种办法: --查询日志文件名称 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
19)iis访问出现要输入用户名和密码问题解决方案http://www.it165.net/admin/html/201109/134.html20)查询字段中的回车换行符 select * from dbo.sys_UserInfo WHERE ?CHARINDEX(CHAR(10),userIdCard)> 0 OR CHARINDEX( CHAR(13),userIdCard) > 0? 21)sqlserver数据库中经常碰到数据中有换行符,如果取出用json解析时会报错,所以取值时在sql中要做去除换行符处理 REPLACE(REPLACE(AppealMemo,CHAR(13),''),CHAR(10),'') as AppealMemo 也可以在asp.net中做替换换行符处理 Replace("rn",""); 22)2017-10-30 excel导入Sqlserver数据库时出现错误: 外部数据框驱动程序(1)中的意外错误 解决办法: 卸载KB4041768及当天的Windows补丁即可,时升级补丁造成的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |