当前位置:  数据库>sqlserver
本页文章导读:
    ▪MSSQL2005发送邮件SQL代码      请在sa系统账户下运行下面代码一、先启动邮件服务 1 --先启动邮件服务 2 go 3 exec master..sp_configure 'show advanced options',1 4 go 5 reconfigure 6 go 7 exec master..sp_configure 'Database mail XPs',1 8 go 9 reconfigure10 go&.........
    ▪MS SQL修改数据库名称      在MS SQL中,如果你想修改某一个数据库的名称,你可以通过下面几种方法实现。 方法一:使用SP_RENAMEDB系统存储过程实现。语法: sp_renamedb [ @dbname = ] 'old_name' , [ @newname = ] 'new_name'例子: .........
    ▪MS SQL 能否修改实例名称      前几天研究了了一下修改数据库名称的方式后,今天突然冒出一个问题,MS SQL的命名实例是否也可以修改呢?例如下图,我在本机上安装了一个命名实例GSP,如果我想将其改为GSPS,能行吗? .........

[1]MSSQL2005发送邮件SQL代码
    来源:    发布时间: 2013-11-15

请在sa系统账户下运行下面代码


一、先启动邮件服务



 1 --先启动邮件服务
2 go
3 exec master..sp_configure 'show advanced options',1
4 go
5 reconfigure
6 go
7 exec master..sp_configure 'Database mail XPs',1
8 go
9 reconfigure
10 go


 


 


二、创建发邮件时所需要的account



1 --创建发邮件时所需要的account
2 exec msdb..sysmail_add_account_sp
3 @account_name = 'Evasunny',--邮件账户(account)名
4 @email_address = 'XXX@qq.com',--发件人邮件地址
5 @display_name = 'XXX发的测试邮件',--发件人显示名称
6 @mailserver_name = 'smtp.qq.com',--smtp邮件服务器地址
7 @port = 25,--端口号
8 @username = 'XXX@qq.com',--发件人邮箱用户名
9 @password = 'XXXXXXXXXX'--发件人邮箱密码


 sysmail_add_account_sp帮助信息


 


三、创建profile



1 --创建profile
2 exec msdb..sysmail_add_profile_sp
3 @profile_name = 'TestProfile'--profile名称


sysmail_add_profile_sp帮助信息


 


四、关联account和profile



1 exec msdb..sysmail_add_profileaccount_sp
2 @profile_name = 'TestProfile',--profile名称
3 @account_name = 'Evasunny',--account名称
4 @sequence_number = 1--account在profile中顺序


 sysmail_add_profileaccount_sp帮助信息


 


五、发送邮件



1 exec msdb..sp_send_dbmail
2 @profile_name = 'TestProfile',--profile名称
3 @recipients = 'XXX@qq.com',--收件人邮箱(有多个邮箱用分号分开)
4 @subject = 'SQL Server 2005 Mail 测试',--邮件标题
5 @body = 'Hello Mail!测试'--邮件内容


 sp_send_dbmail帮助信息


 


 

本文链接


    
[2]MS SQL修改数据库名称
    来源:    发布时间: 2013-11-15

在MS SQL中,如果你想修改某一个数据库的名称,你可以通过下面几种方法实现。


 


方法一:使用SP_RENAMEDB系统存储过程实现。


语法: sp_renamedb [ @dbname = ] 'old_name' , [ @newname = ] 'new_name'


例子: 我需要将数据库Test_1的名称修改为Test



use master
go
exec sp_renamedb @dbname='Test_1', @newname='Test';
go


 


有时候执行该脚本,会报如下错误:


消息 5030,级别 16,状态 2,第 1 行


无法用排他锁锁定该数据库,以执行该操作。


出现这种情况,主要是还有其它程序或用户连接数据库,你必须确保没有任何用户正在使用数据库. 可以通过将数据库设置为单用户模式。在数据库属性——》“连接”选择里面找到限制访问“选项,选择SIGLE_USER选项。然后执行上面语句,即可修改数据库名称。



当然也可以用脚本解决这个问题,查询看看当前有哪些会话连接到这个数据库,如果没有记录,则可直接执行上面脚本。



SELECT SPID FROM master.dbo.sysprocesses W
WHERE dbid=DB_ID('Test1');


 否则执行KILL命令杀掉这些会话进程。


KILL SPID


下面这个脚本可以比较好的处理上面问题,不需要你做过多额外操作,直接用脚本完成任务。


 



use master    
exec sp_dboption @dbname='OldDbName', @optname= 'Single User',@optvalue= 'TRUE'
exec sp_renamedb @dbname='OldDbName', @newname= 'NewDbName'
exec sp_dboption @dbname='NewDbName', @optname= 'Single User', @optvalue='FALSE'
GO


 


  


 


检查修改成功。



SELECT name, database_id
FROM sys.databases
WHERE name = N'DbName';


 


注意:SQL Server 2008后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。


方法二:使用ALTER DATABASE语句修改数据库名称。




USE master;

GO

ALTER DATABASE Test1 MODIFY NAME = Test;

GO


 



方法三:使用Microsoft SQL Server Managment Studio管理工具,选中要修改名称的数据Test1,单击右键,选择”重命名”;注意如果有其他用户会话连接该数据库则会报错,必须先杀掉那些会话进程或使数据库处于单用户模式下,再执行上面操作,否则会报错。


本文链接


    
[3]MS SQL 能否修改实例名称
    来源:    发布时间: 2013-11-15

前几天研究了了一下修改数据库名称的方式后,今天突然冒出一个问题,MS SQL的命名实例是否也可以修改呢?例如下图,我在本机上安装了一个命名实例GSP,如果我想将其改为GSPS,能行吗? 如果可以,那么该怎么做呢?



该如何下手呢,真的不知道怎么做,毕竟以前都没有做过修改命令实例(当然修改计算机名称是另外一回事),先从网上搜索资料吧,结果,搜索到一堆不相关的资料,其实都不是真正的修改命名实例名称,只是修改计算机名称。不过最后搜索到一点有用的信息http://www.itpub.net/thread-1047040-1-1.html, 不过呢,我按照其操作去实现的时候,发现根本行不通。




修改sysservers脚本


  •   EXEC sp_configure'allow updates', 1;

  •  

  •   RECONFIGURE WITH OVERRIDE;

  •  

  •   GO

  •  


  •  

  •   UPDATE master..sysservers SET srvname='A8BEC8491730444\GSPS', dataaccess='A8BEC8491730444\GSPS',

  •  

  •            srvnetname='A8BEC8491730444\GSPS'

  •  

  •        WHERE srvname ='A8BEC8491730444\GSPS';

  •  

  •       

  •  

  •   EXEC sp_configure'allow updates', 0;

  •  

  •   RECONFIGURE WITH OVERRIDE;

  •  

  •   GO




  • 因为sql server 2005 和 sql server 2008 不再支持直接对系统表进行修改,上面语句会报如下错误。


    消息 259,级别 16,状态 1,第 2 行


    不允许对系统目录进行即席更新。


    那么接下来我们来看看修改计算机名称,会给数据库带来什么影响,我把计算机名称从A8BEC8491730444改为Kerry,然后重启机器和服务,执行下面脚本




    Code Snippet


  • USE master;

  •  

  • GO

  •  

  • IF SERVERPROPERTY('servername') <> @@SERVERNAME

  •  

  • BEGIN

  •  

  • DECLARE @server sysname;

  •  

  • SET @server =@@SERVERNAME;

  •  

  • EXEC sp_dropserver@server = @server;

  •  

  • SET @server = CAST(SERVERPROPERTY('servername') AS sysname);

  •  

  • EXEC sp_addserver@server=@server, @local='LOCAL';

  •  

  • END

  •  

  • GO




  • 执行完脚本后,我们来看看查询结果




    SELECT @@SERVERNAME ,SERVERPROPERTY('servername')


     


    SELECT * FROM Sys.SysSe      
        
    最新技术文章:
     




    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3