我有一个代码:

DECLARE @Script VARCHAR(MAX)

SELECT @Script = definition FROM manged.sys.all_sql_modules sq
where sq.object_id = (SELECT object_id from managed.sys.objects 
Where type = 'P' and Name = 'usp_gen_data')

Declare @Pos int

SELECT  @pos=CHARINDEX(CHAR(13)+CHAR(10),@script,7500)

PRINT SUBSTRING(@Script,1,@Pos)

PRINT SUBSTRING(@script,@pos,8000)

脚本的长度约为10000个字符,因为我使用的打印语句最多只能容纳8000个字符.所以我使用了两个打印语句.

问题是,当我有一个18000个字符的脚本时,我通常使用3个打印语句.

有没有办法根据脚本的长度设置打印语句的数量?

推荐答案

您可以根据脚本长度的计数除以8000进行WHILE次循环.

如:

DECLARE @Counter INT
SET @Counter = 0
DECLARE @TotalPrints INT
SET @TotalPrints = (LEN(@script) / 8000) + 1
WHILE @Counter < @TotalPrints 
BEGIN
    -- Do your printing...
    SET @Counter = @Counter + 1
END

Sql相关问答推荐

BigQuery`喜欢ANY‘和`不喜欢ANY’

使用sede获取不一定有两个不同标签的所有问题

数据库索引:如何使用名称和类别对项目进行最佳索引?

解析SQL Server中的嵌套JSON

从日期开始向前填充重复项

每组显示一行(表1中的分组值),表2中的不同列表用逗号分隔

snowflake/SQL嵌套的JSON对象和数组

Select 非重复值并按条件排除行

SQL:查询作为子查询或CTE写入的最大和数失败

嵌套Json对象的SQL UPDATE WHERE

两个月之间的WHERE CASE WHEN-ORA-00905:缺少关键字

仅当 SQL Server 中的表为开时,才在存储过程中使用更改跟踪

如何 for each id创建长度等于id长度的不同日期序列?

SQL 根据前一天的最大值计算每天的值数

特殊条件计算小计

没有调用子查询的嵌套 JOIN语法是什么?

PostgreSQL中如何提取以特定字符开头的字符串中的所有单词?

Oracle函数中无法动态迭代创建的SYS_REFCURSOR

String_Split 多列

具有日期时间条件的存储过程