我有TSQL块,我想创建一个MACRO然后在我的SQL文件中重用。我希望这只是一个'编译'时间的东西。
例如:
?set? COMMON = "Field1 int, Field2 char(1),";
?set? MAKEONE = "create table";
MAKEONE XXX (
COMMON
Field3 int
);
请不要问我为什么要......:)
...适用于SQL Server。
好的,SQL的条件执行怎么样:
?set? ISYES = true;
?if? ISYES
create table AAA (...)
?else?
create table BBB (...)
答案 0 :(得分:2)
你所问的内容在SQL术语中没什么意义
根据您的示例:
CREATE TABLE就是这样的:一个CREATE TABLE。为什么宏呢?你不会用“创建程序”来代替。
拥有“常用”字段表示设计不佳
您还必须考虑:
现在,您要解决的业务问题是什么? 而不是问你选择的解决方案......
编辑:我在上面输入时更新了问题:
IF (a condition)
EXEC ('CREATE TABLE ...')
ELSE IF (a condition)
EXEC ('CREATE TABLE ...')
...
请注意,SQL中的大部分DDL必须位于其自己的批处理中或批处理中的第一个语句中。因此再次使用动态SQL