标签 SQL Server 下的文章

未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。 (System.Data)

SQLServer 2012导入Excel 2016数据到数据表报错:

未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。 (System.Data)

原因是没有安装Access数据引擎,Access数据引擎分32位和62位。考虑到本地是64位系统,开始安装64位的Access数据引擎,结果还是报错。卸载后安装32位后不再报错。因为SQL Server Management Studio(ssms.exe)这个工具是32位的,应该和这个位数关联。

附Access Data Engine下载地址:

64bit:

https://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine_X64.exe

32bit:

https://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine.exe

sqlserver 删除数据库 正在使用

通常情况睛,SQLServer2000正在使用的数据库(有数据库连接),是不能删除或被恢复的,可以将数据库设置为单用户模式,即可删除:

use master
go

declare @dbname sysname   
set @dbname = 'db_tunps_com' --这个是要删除的数据库库名   
      
declare @s nvarchar(1000)   
declare tb cursor local  
for 
    select s = 'kill   ' + cast(spid as varchar) 
    from   master.dbo.sysprocesses 
    where  dbid = DB_ID(@dbname)   
      
open   tb     
fetch   next   from   tb   into   @s   
while @@fetch_status = 0 
begin 
    exec (@s)  
    fetch next from tb into @s 
end   
close   tb   
deallocate   tb   
   
exec ('drop   database   [' + @dbname + ']')  

SQL Server死锁造成页面卡顿

原因是访问了数据库,做了数据库增删改操作,但是最后没有关闭数据库连接,造成之前的操作死锁。解决办法,在SSMS里面查看死锁的进程:

--查看死锁进程
select distinct 'kill' + ' ' + cast(request_session_id as varchar(200) ) + ';'
from   sys.dm_tran_locks where resource_type='OBJECT'

然后运行输出的内容,比如:

kill 60;
kill 61;

最后在业务代码的最后finally内关闭数据库连接:

conn.close();

SQL Server 报错:管道的另一端上无任何进程,错误233

sqlserverError233.jpg

已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: Shared Memory Provider, error: 0 - 管道的另一端上无任何进程。) (Microsoft SQL Server,错误: 233)

解决步骤: 用Windows身份登录Management Studio,右击服务器选择属性,将安全性选项 更改为:SQL Server 和 Windows 身份验证模式