在T-SQL中复制字符

开发者在线 Builder.com.cn 更新时间:2003-12-22作者:ZDNet China 来源:

本文关键词: sql sqltips

本文译自Builder.com,未经许可请勿转载

T-SQl中的REPLICATE命令复制给定的字符串任意次。字符串可以是一个字符或者多个。可以将该命令加入到脚本中得到更好的输出。以下命令可以输出一行星号:

PRINT REPLICATE('*',80)

字符串会按照定宽字符输出排列,比如Courier字体,下面的例子显示SQL SERVRE实例名的长度,没有什么实际的意义,致使说明它增加了T-SQL的可读性。

PRINT REPLICATE('         |',10)

PRINT REPLICATE('1234567890',10)

PRINT @@SERVICENAME

以下是一个样例的脚本显示该脚本每一步的具体运行结果:

SET NOCOUNT ON

GO

PRINT REPLICATE('#',20) + 'CREATING MyUser Schema' +

      REPLICATE('#',20)

GO

PRINT REPLICATE('*',20) + '  ADDING LOGINS...'

GO

EXEC sp_addloginMyUser, NULL

GO

PRINT REPLICATE('*',20) + '  ADDING USERS...'

GO

EXEC sp_adduserMyUser

GO

PRINT REPLICATE('*',20) + '  ADDING ROLE MEMEBERS...'

GO

EXEC sp_addrolememberdb_ddladmin, MyUser

GO

PRINT REPLICATE('*',20) + '  CREATING TABLES...'

GO

CREATE TABLE MyUser.x_temp

(KEY1 INT IDENTITY NOT NULL

     CONSTRAINT pk_x_temp PRIMARY KEY,

COL1 INT NULL)

GO

SELECT type, name MyUserTables

FROM sysobjects

WHERE USER_NAME(uid) = 'MyUser'

GO

PRINT REPLICATE('#',20) + '  DROPPING MyUser Schema  '

      + REPLICATE('#',20)

GO

PRINT REPLICATE('*',20) + '  DROPPING TABLES...'

GO

DROP TABLE MyUser.x_temp

GO

SELECT type, name MyUserTables

FROM sysobjects

WHERE USER_NAME(uid) = 'MyUser'

GO

PRINT REPLICATE('*',20) + '  DROPPING ROLE MEMEBERS...'

GO

EXEC sp_droprolememberdb_ddladmin, MyUser

GO

PRINT REPLICATE('*',20) + '  DROPPING USERS...'

GO

EXEC sp_dropuserMyUser

GO

PRINT REPLICATE('*',20) + '  DROPPING LOGINS...'

GO

EXEC sp_droploginMyUser

GO

 

在脚本中加入这些注释,可以很容易的对脚本进行差错,当脚本发生错误的时候可以很容易的确定在那里出现了问题。



责任编辑:李宁

欢迎评论投稿

用户评论

  • 用户名
  • 评论内容