04 powershell读写数据库操作

一、模式1:通过平台update进行数据库操作

1、PS语法:

$Cmd="D:\JenkinsWS\Tools\build\build\UpdateMAP.exe"   #平台的sql执行命令
echo "********************* Start:创建数据库 ******************************* " 
echo ">>>> 创建数据库"
&"$Cmd" -r $ENV:PackagePath\CreateDbSQL_ALL\sql -db $ENV:sqlCmd -env "2" 
 -p "false" -exesql "true"      #平台执行sql命令,参数格式;
If (!$?){
 "ERROR!SQL执行存在错误!";
 exit 1;
 break;
};
"SQL执行成功!"
  echo "********************** END  ************************************************ "

2、SQL

use master   
go    
--杀掉数据库进程
declare @dbname sysname   
set @dbname = '730Core_CB' --这个是要删除的数据库库名   
      
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   

if db_id('730Core_CB') Is Not NULL
	Drop database [730Core_CB]
Go
create database [730Core_CB]
on  primary -- 默认就属于primary文件组,可省略
(
/*--数据文件的具体描述--*/
 name='730Core_CB',-- 主数据文件的逻辑名称
 filename='D:\Test\730Core_CB.mdf',-- 主数据文件的物理名称
 size=5mb, --主数据文件的初始大小
 filegrowth=300mb--主数据文件的增长率
)
log on
(
/*--日志文件的具体描述,各参数含义同上--*/
 name='730Core_CB_log',
 filename='D:\Test\730Core_CB_log.ldf',
 size=2mb,
 filegrowth=300mb
)

二、模式2:PS直接执行SQL

0、执行Invoke-Sqlcmd之前要先注册,执行如下语句:不同的SQLServer版本后面的命令不同,下面是SQLServer2008R2版本

1  Add-PSSnapin SqlServerCmdletSnapin100
2  Add-PSSnapin SqlServerProviderSnapin100

1、语法:

Invoke-Sqlcmd -ServerInstance "实例名" -Database "数据库名" -Query "SQL"
-Username "用户名" -Password "密码" -Verbose 

2、实例:

#查询所有子系统
$ListApp = Invoke-Sqlcmd -ServerInstance "WIN-624RF20AQJM\SQL2008R22" 
-Database "dotnet_erp60" 
-Query "SELECT Application FROM dbo.myApplication WHERE ApplicationName
 NOT IN('ERP600','数据服务中心','电子签章','工程量清单集成系统') ORDER BY 
 Application" -Username "sa" -Password "95938" -Verbose 

你可能感兴趣的:(Powershell,数据库,服务器,linux,powershell)