【IT168 服务器学院】公用命令的行为所有的Enterprise SQL Server Manager命令都共享以下的行为:
l CLI从标准输入(stdin,文件描述符0)中读取输入,它将正常的输出通过标准输出(stdout,文件描述符1)输出,如果发生错误,它通过标准错误输出(stderr,文件描述符2)将出错信息输出。
l 所有的命令在退出时都返回一个状态值:0表示命令执行成功,非零表示有错误发生。
l 当在输入命令时,如果发生了语法错误,或者遗漏了命令选项,或者使用了-help选项时,所有的命令都会显示一个如何使用该命令的提示信息。
scrt(创建)
命令scrt命令用来新建一个对象,比如新建一个SQL Server的注册用户、一个数据库或一个计划对象。通常,scrt命令每次只能创建一个对象。
scomp(比较)
命令scomp命令用来比较两个服务器或者两个数据库之间所使用的资源以及对象的差异,并且将这些差异显示出来。为了区分你所比较的两个服务器或两个数据库,其中的一个被叫作“源”,而另一个被叫做“目标”。
当要指定一个服务器或一个数据库进行比较时,大多数的scomp命令都接受标准的-source collection_name 和杢arget collection_name选项来指定源和目标服务器或数据库。由于这两个选项的缺省值都是指当前的服务器或数据库的集合,因此,你必须至少提供上面两个名字中的一个,并且该名字还必须与当前的服务器或数据库集合不同。如果你同时忽略了这两个选项,scomp命令的执行就会出错,并且会显示一个出错信息。
在scomp命令的输出中,以<开头的行表示的是源的内容,而以>开头的行表示的是目标的内容。比如:
scomplogin-ource AGRA -arget DEPK
<<<source: AGRA
>>>target: DEPK
------------bmiley------------
Lock Status:
<ON
>OFF
----------cwilliams--------
Default Database:
< master
>pubs2
上面的输出表示,注册用户bmiley在源服务器AGRA中被锁住了,而同样的注册用户在目标服务器DEPK中却没有被锁住。类似地,注册用户cwilliams在服务器AGRA上缺省的数据库是master,而在服务器DEPK上的缺省数据库是pubs2。
如果一个属性值只在源或目标中存在,而与它相比较的另一方并不存在该属性时,scomp命令的输出就只显示存在该属性的那个对象中的属性名及属性值,那些不存在的属性不会以 < 或 > 为开头进行输出。这种处理方法和UNIX中的diff命令很相似。比如:
scomplogin -name jhodges-ource AGRA -arget DEPK
<<<source: AGRA
>>>target: DEPK
-------------- jhodges -------------
Login Full Name:
<Johnny Hodges
Login Default Database:
< master
Default Language:
<us_english
Login Lock:
<0
Login Audit Flags:
<0
Login Password Date:
<June 29, 1994 7:03:26 pm
Login Expiration Date:
<nullConnected:<null
上面的输出表示注册用户jhodges只在源服务器AGRA上存在。同样地,如果要比较的对象在源和目标上都不存在时,scomp命令就不会输出任何以 < 或 > 开头的行。比如:
scomplogin name rnance -source AGRA -target DEP
K<<<source:AGRA
>>>target:DEPK
--------------------------
No differences
上面的输出表示注册用户rnance在两个服务器上的内容完全相同,或者是该用户在这两个服务器上都不存在.