日期:2014-05-18  浏览次数:20425 次

SQL 脚本怎么写 以及多个实例问题 看帖后再复制粘贴好么?
一台服务器上 有 实例 A B C 他们都有同一个数据库 D 那么
create login demouser
with password='demo',default_database= D--创建登陆帐号,
go
create user demo2user for login demouser --创建用户,创建角色

我这样写是不是 等于创建 demouser 一个这个登录账号 能同时都应用于 A B C 的 D 库呢么? 如果不是要怎么写呢?


还有这样的句子只能在打开数据库的时候里面写么?

能不能写成脚本,就是想记事本文件 保存比如什么 EXE 什么的,执行下就行了,谢谢。






------解决方案--------------------
我这样写是不是 等于创建 demouser 一个这个登录账号 能同时都应用于 A B C 的 D 库呢么? 如果不是要怎么写呢?

不能 你在哪个实例下执行的 才能访问对应实例下的数据库D

------解决方案--------------------
可以在数据库中执行,但是每个实例之间的用户是不通用的。

如果存在记事本文件中,可以用程序调用,然后执行程序,
但是这个程序不同实例的连接字符串决定脚本执行的实例。
------解决方案--------------------
SQL code

新建一个文件夹叫维护 所有服务器--里面放置撒个文件--更新所有服务器.bat--codeToExecute.txt--result.txt

第一个文件的内容是:
echo off

echo 是否要执行以下脚本?

pause

echo 开始执行下列脚本

del .\result.txt

rem ---------- 实例1 ----------

echo 实例1>>.\result.txt

echo 实例1
osql -Sip地址 -Usa -P"密码" -i".\codeToExecute.txt" -w256  >>.\result.txt


rem ---------- 实例2 ----------

echo 实例2>>.\result.txt

echo 实例2
osql -Sip地址 -Usa -P"密码" -i".\codeToExecute.txt" -w256  >>.\result.txt

pause

exit

第二个文件的内容是你像执行的sql语句..
如: select* form dba.dbo.tbname
backup database dba to disk='c:\dba.bak'
exec 过程名称'参数'

第三个文件result.txt 

什么也不用做他是存放你要的结果..

这样你就用一条语句执行了   100个服务器上    执行了同一条语句...也可以在同一个服务器上N多个实例上一次执行所有的语句

------解决方案--------------------
上面是osql 其功能虽然没有cmdsql强大..但是应该也能满足你的需求...维护多个服务器的时候..用得到...这只是一思路..你可以直接看cmdsql 用批处理做成脚本...也能完成同样的功能!