在[A]库中有一张表结构如下
COMPANY
CITY_CODE DATABASE_NM
---------------------------------------------
CNY DATABASE01
SHA DATABASE02
USD DATABASE03
MFM DATABASE04
具体需求是:从A库的[COMPANY]中得到每一个货币对应其他国家货币的汇率,[COMPANY]的CITY_CODE的值代表本地货币种类,[DATABASE_NM]的值是关联的数据库的名称。库[DATABASE01]~[DATABASE02]就是我们要得到的本地货币对外币的汇率表。
之前写的视图是:
SELECT
查询SQL语句
FROM
[DATABASE01].dbo.XX A
LEFT JOIN [DATABASE01].dbo.XXX B ON A.cexch_name = B.cexch_name AND B.i_id <> '1'
LEFT JOIN [DATABASE01].dbo.XXXX C ON C.i_id = '1'
WHERE
A.itype = '2'
UNION
SELECT
查询SQL语句
FROM
[DATABASE02].dbo.XX A
LEFT JOIN [DATABASE02].dbo.XXX B ON A.cexch_name = B.cexch_name AND B.i_id <> '1'
LEFT JOIN [DATABASE02].dbo.XXXX C ON C.i_id = '1'
WHERE
A.itype = '2'
UNION
SELECT
查询SQL语句
FROM
[DATABASE03].dbo.XX A
LEFT JOIN [DATABASE03].dbo.XXX B ON A.cexch_name = B.cexch_name AND B.i_id <> '1'
LEFT JOIN [DATABASE03].dbo.XXXX C ON C.i_id = '1'
WHERE
A.itype = '2'
UNION
SELECT
查询SQL语句
FROM
[DATABASE04].dbo.XX A
LEFT JOIN [DATABASE04].dbo.XXX B ON A.cexch_name = B.cexch_name AND B.i_id <> '1'
LEFT JOIN [DATABASE04].dbo.XXXX C ON C.i_id = '1'
WHERE
A.itype = '2'
现在我们项目要求,写成一个循环语句 因为[A]的[Company]表的数据不是固定的,有可能会追加其他国家的货币种类!
求大神指导啊,已经卡在这里一个多星期了。
我的想法是:假设有20个国家使用这个网站,然后写一个存储过程(pro_test),循环A库,表[COMPANY]的所有数据:
IF (@dateBase_nm = 'DATABASE01')
BEGIN
INSERT INTO A.dbo.EXCHANGE_RATE_INFO
(A, B, C)
SELECT A,B,C
FROM
[DATABASE01].dbo.Department
END
IF (@dateBase_nm = 'DATABASE02')
BEGIN
INSERT INTO A.dbo.EXCHANGE_RATE_INFO
(A, B, C)
SELECT A,B,C
FROM
[DATABASE02].dbo.Department
END
........
[EXCHANGE_RATE_INFO]是一个临时表,插入完数据,用视图(view_test)查询[EXCHANGE_RATE_INFO],以便在项目中使用,问题在于 我怎么使用视图先调用一个存储过程[pro_test],再查询[EXCHANGE_RATE_INFO]?或者大家有什么更简单的办法来实现这样的功能。(散100分 大神们还等什么?)
------解决思路----------------------
语法
CREATE TRIGGER trigger_name
ON { table
------解决思路----------------------
view }
[ WITH ENCRYPTION ]
{
{ { FOR
------解决思路----------------------
AFTER
------解决思路----------------------
INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ { AND
------解决思路----------------------
OR } UPDATE ( column ) ]
[ ...n ]
------解决思路----------------------
IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
{ comparison_operator } column_bitmask [ ...n ]
} ]
sql_statement [ ...n ]
}
}