下面的代码尝试使用大小写条件来创建表或其他表。 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
答案 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