我必须制作一个长事务sql脚本,在其中必须使用相同的值
很多次,我不想每次都写文字值,但是使用C语言中的预处理器宏即可。

关键是我将多次运行此脚本,并为“SomeValue”使用不同的值,而我只想将文字值放在脚本中的一个位置,在顶部可以看到并根据需要对其进行更改,并且然后再次运行脚本。

最佳答案

虽然无法在SQL中定义常量,但是可以创建一个变量:

DECLARE @SomeValue INT = 5

SELECT *
FROM MyTable
WHERE ID = @SomeValue

SELECT *
FROM AnotherTable
WHERE SomeColumn = @SomeValue + 5

但是,在何处可以使用变量有一些限制。例如,您不能在DDL语句中使用它们。如果这样做,您将得到一个错误:
DECLARE @SomeValue INT = 5
CREATE TABLE TestTable(IntColumn INT DEFAULT(@SomeValue))

将给出此错误:

CREATE TABLE语句中不允许使用变量。

关于sql-server - 我该如何在事务SQL中等效“#define SomeValue 5”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26544558/

10-11 12:47