我正在寻找一种在@Value 为空时退出 T-SQL 脚本的方法。这是我到目前为止所拥有的,但它没有按预期工作:
SELECT
@Value,
CASE
WHEN @Value IS NULL
RAISERROR('EXIT', 16, 1)
FROM
table
WHERE
name LIKE 'test'
我正在寻找一种在@Value 为空时退出 T-SQL 脚本的方法。这是我到目前为止所拥有的,但它没有按预期工作:
SELECT
@Value,
CASE
WHEN @Value IS NULL
RAISERROR('EXIT', 16, 1)
FROM
table
WHERE
name LIKE 'test'
也许这对你有用:
DECLARE @Value INT = 1
IF( @Value IS NULL)
BEGIN
RAISERROR('Exit',16,1)
END
ELSE
BEGIN
SELECT @Value
END
IF @Value IS NULL RAISERROR('EXIT', 16,1);
使用游标和临时表,您可以获得所需的输出。不知道是不是目标
USE AdventureWorksLT2012
DECLARE @CustomerID AS INT
DECLARE @CompanyName AS VARCHAR(MAX)
DECLARE @EmailAddress AS VARCHAR(MAX)
CREATE TABLE #output (CustomerID INT,CompanyName VARCHAR(MAX),EmailAddress VARCHAR(MAX))
DECLARE testCursor CURSOR
FOR
SELECT TOP (100)
CustomerID
,CompanyName
,EmailAddress
FROM SalesLT.Customer
ORDER BY customerID DESC;
OPEN testCursor;
FETCH NEXT FROM testCursor
INTO @CustomerID, @CompanyName, @emailAddress;
if @EmailAddress is not null
BEGIN
INSERT INTO #output values( @CustomerID, @CompanyName, @emailAddress);
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM testCursor
INTO @CustomerID, @CompanyName, @emailAddress;
if @EmailAddress is null
BEGIN
RAISERROR('Exit',16,1);
BREAK;
end
INSERT INTO #output values( @CustomerID, @CompanyName, @emailAddress);
END;
END
CLOSE testCursor;
DEALLOCATE testCursor;
SELECT * FROM #output;
DROP TABLE #output