sql - sql中的字符串填充

标签 sql sql-server tsql padding

我打印出一堆动态创建的 DDL 语句,并希望以特定方式对齐输出。

PRINT 'ALTER TABLE ' + @TableName + ' WITH NOCHECK ADD CONSTRAINT CK_' + @TableName + '_' + @ColumnName + '_MinimumLength CHECK (LEN(' + @ColumnName + ') > 0)'

输出:

ALTER TABLE SignType ADD CONSTRAINT CK_SignType_Description_MinimumLength CHECK (LEN(Description) > 0)
ALTER TABLE Person ADD CONSTRAINT CK_Person_Name_MinimumLength CHECK (LEN(Name) > 0)

我想要的输出是:

ALTER TABLE SignType                WITH NOCHECK ADD CONSTRAINT CK_SignType_Description_MinimumLength                CHECK (LEN(Description) > 0)
ALTER TABLE Person                  WITH NOCHECK ADD CONSTRAINT CK_Person_Name_MinimumLength                         CHECK (LEN(Name) > 0)

是否有一个函数可以让我用字符 x 的 n 来填充字符串。我会这样使用它:

PRINT 'ALTER TABLE ' + @TableName + PAD(' ', 50 - LEN(@TableName)) + ' WITH NOCHECK ADD CONSTRAINT .....'

谢谢

最佳答案

我相信您想要的是从 SQL 2005 开始可用的 REPLICATE 函数。

PRINT 'ALTER TABLE ' + @TableName + REPLICATE(' ', 50 - LEN(@TableName)) + ' WITH NOCHECK ADD CONSTRAINT .....'

MSDN: REPLICATE

关于sql - sql中的字符串填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1890015/

相关文章:

sql - 优化内部连接

mysql按字母顺序按列名获取结果

sql - 使用 sql server 检查字谜

sql - 如何修改具有默认值的列的数据类型

mysql - 超过 5 个表的 SQL 左连接

mysql - MySQL 中 SELECT 和 INSERT 语句的条件

java - MSSQL - Java/JTDS 和 Join 的列名称无效

mysql - 字段列表中未知的列名(案例)- MySQL

sql - SQL 服务器查询中的 NULL 值

mysql - Between 和 在 MySql 中工作正常,但在 T-SQL 中不工作