TSQL 在 case 语句中创建 table

TSQL Create table inside case statement

下面的代码尝试使用 case 条件来创建 table 或另一个。 sql 的表达方式是什么?

DECLARE @tmp VARCHAR(255)

SET @tmp = 'A'

SELECT CASE @tmp
WHEN 'A' THEN CREATE TABLE #Hello (ID Int, Hello varchar)
WHEN 'B' THEN CREATE TABLE #Goodbye (ID Int, Goodby varchar)
END

而不是 CASE statement, simply use IF,因为在 CASE 语句中您无法控制 TSQL 语句的执行流程或使用 DDL 语句。

根据@Zohar Peled 的评论,我在 varchar 字段中添加了任意长度,因为它们没有任何声明:

DECLARE @tmp VARCHAR(255)

SET @tmp = 'A'
IF @tmp = 'A'  
BEGIN 
 --PRINT 'Creating table #Hello'
 CREATE TABLE #Hello (ID Int, Hello varchar(128))
END
ELSE
IF @tmp = 'B'
BEGIN
 --PRINT 'Creating table #Goodbye'
 CREATE TABLE #Goodbye (ID Int, Goodby varchar(128))
END