sql - 即席 SQL 脚本中的编程 T-SQL

标签 sql sql-server t-sql

是否可以在存储过程和函数的范围之外使用 T-SQL 编程结构?具体来说,它们可以在临时 SQL 脚本中使用吗?如果是这样,是否可以使用全部功能(除了传递参数和返回值,我猜这些功能仅在存储过程和函数中受支持)?

我有 Oracle PL/SQL 背景。 PL/SQL 可以在存储过程和函数中使用,也可以在匿名 PL/SQL 代码块中使用,这些代码块可以在临时 SQL 脚本中使用,并且不会存储在数据库中。我想知道 T-SQL 是否有类似的功能。

最佳答案

是的,他们可以采用这个示例解决方案来解决 fizzbuzz 问题:

declare @counter int
declare @output varchar(15)

set @counter = 1
while @counter < 101
begin
    set @output = ''
    if @counter % 3 = 0
        set @output = 'Fizz'
    if @counter % 5 = 0
        set @output = @output + 'Buzz'
    if @output =''
        set @output = @counter
    print @output
    set @counter = @counter + 1
end

当然,不要陷入使用过程代码处理数据的陷阱,SQL 在将数据视为一组时效果最佳。

关于sql - 即席 SQL 脚本中的编程 T-SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30001605/

相关文章:

sql - Excel-Access ADO 更新值

java - 将 String 正确转换为 int 以插入字段类型为 Number 的 SQL 数据库时遇到问题

sql - 带有正则表达式的自定义 postgreSQL 域以接受一组特定的字符串

t-sql - SQL Server : Split string to row

sql - 如何通过未知文件在SQL Server中设置数据库?

带范围的 MySQL 查询

sql-server - SQL Server xp_delete_file 参数

sql - SSIS 查找转换未捕获不匹配的值

SQL 脚本工具胜过 MS 查询分析器?

sql - 使用 row_number() 通过分区生成计算列