日度归档:2019年6月4日

mssql sqlserver 使用sql脚本获取sql 服务器名称和ip地址的三种方法分享


摘要:
下文讲述使用sql脚本获取sql引擎服务器的名称的IP地址的方法分享,如下所示:
实验环境:sql server 2008 r2


方法1:
通过SERVERPROPERTY获取MachineName属性获取服务器名称
或@@serverName全局变量获取服务器名称

 
SELECT SERVERPROPERTY('MachineName') as [服务器名称]
select @@SERVERNAME as [服务器名称]
select HOST_NAME()  as [客户端名称]

方法2:
使用xp_cmdshell运行cmd命令ipconfig获取服务器的相关信息

    --设置xp_cmdshell 属性,使xp_cmdshell可运行
     exec sp_configure'show advanced options', 1 
      reconfigure with override 

      exec sp_configure'xp_cmdshell', 1 
       reconfigure with override 

     exec sp_configure'show advanced options', 0 
     reconfigure with override 
        go 
   
  if object_id('tempdb..#tmp') is not null drop table #tmp

create table #tmp(ipInfo nvarchar(300))

insert into #tmp(ipInfo)
exec master..xp_cmdshell'ipconfig'

delete from #tmp 
where ipinfo not like '%ip%'
or charindex('.',ipinfo) <=0 
or ipinfo is null 

select ipinfo
as [sqlserver服务器IP]  from #tmp 

truncate table  #tmp
drop     table  #tmp 

方法3:
通过查询系统存储过程 SYS.DM_EXEC_CONNECTIONS 获取服务器名称和IP

  SELECT  CONVERT(NVARCHAR(128),SERVERPROPERTY('SERVERNAME'))  as [服务器名称]
,LOCAL_NET_ADDRESS AS '服务器ip地址'
,CLIENT_NET_ADDRESS AS '客户端ip地址'
 FROM SYS.DM_EXEC_CONNECTIONS WHERE SESSION_ID = @@SPID

mssql sqlserver sql脚本查询指定指定sql引擎下数据库信息、数据表、数据列方法分享


摘要:
下文讲述使用sql脚本检索sqlserver引擎下的数据库信息 数据表 表中列信息的方法分享,如下所示:
实验环境:sql server 2008 R2

    ---获取数据库引擎下所有数据库名称
SELECT name as [数据库名称] 
     FROM master..sysdatabases 

---获取指定数据库下的数据表名称
---例:获取test数据库下所有数据表信息
SELECT name as [数据表名称],
 case 
   when xtype='U' then N'用户表'
   when xtype='S' then N'系统表'
 end  as [数据表类型] 
   FROM test..sysobjects Where xtype ='U'  
 
---获取指定数据表中的列名 
---例:获取tableName下的列名信息
select  name as [列名]  
 FROM test..syscolumns 
 WHERE id=Object_Id('tableName') 
mssql_sqlserver_数据表查询_8807

mssql_sqlserver_数据表查询_8807

mssql sqlserver 使用sql脚本删除数据中的“换行符”的方法分享


摘要:
下文讲述使用sql脚本的方法对sql变量中的换行符进行删除,如下所示:
实验环境:sql server 2008 R2



实现思路:
由于换行符在数据库中的ascii码为char(10),所以我们替换数据中的换行符,需要替换char(10)的方法,
达到替换换行符的目的。

    declare @maomao365 varchar(4000)
    
	set @maomao365='sqlserver 爱好者'
     
    select @maomao365,replace(@maomao365,char(10),'')


延升阅读:
在sqlserver中,如果出现无法替换的特殊字符,此时我们需要采用替换特殊字符所对应的ASCII的方法,替换特殊字符