我必须制作一个长的transact sql脚本,我必须使用相同的值 很多次,我不想每次都写出文字值,但是使用C中的内容将是一个预处理器宏。
关键是我将多次运行此脚本,使用“SomeValue”的不同值,我只希望将文字值放在脚本中的一个位置,在顶部我可以看到它并将其更改为需要,然后再次运行脚本。
答案 0 :(得分:2)
虽然您无法在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语句中不允许使用变量。
答案 1 :(得分:1)
您是否尝试在脚本的最开头使用默认值声明值,例如:DECLARE @SomeValue int = 5