TSQL在case语句内创建表

时间:2019-03-26 13:51:48

标签: tsql case create-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

1 个答案:

答案 0 :(得分:3)

使用IF代替{{3}}语句,因为在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