我设计了一个数据库,其中我有几个通用模板表共享的全局表。
这个想法适用于我公司的每个客户,我有一组客户特定的表。这些表具有相同的结构,并且具有少数全局表的外键。
客户特定表格的名称类似于表格,例如table1和table2。
现在我想编写类似于Sybase允许的查询,如下所示。
parameter CUST;
select * from table{CUST};
output to table{CUST}.txt;
以上查询将以交互方式调用
isql a.sql 1
isql a.sql 2
请帮忙。
修改 一旦我跟进你的建议,我将最终得到所有表有两列主键的2列主键,然后没有这些键的自动增量选项。 我知道你会建议一个错误的自动增量列,它的限制在理论上没有界限。
此外,现在我们每个客户每年大约有50,000到几十个交易,并且当需要包含在业务单据中时,交易ID可以用几位数来管理。一旦拥有全局表,事务ID将太长或者它们都将客户端ID作为前缀。管理太多了。另一个主要问题是需要行级安全检查/锁定以确保每个客户端只能访问其自己的记录。每个过滤器都会被更改,因此列表上的内容太长了。
答案 0 :(得分:1)
您无法参数化表名。 将一个表用于具有客户列的所有客户,并在查询中使用相应的表。
e.g。
select * form table where customer = @cust;