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
下面的代码尝试使用 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