我想創建一個基於它們的前綴來組合特定表的視圖。
這是一個在SQL 2008服務器上運行的數據庫。基於前綴創建工會特定表的視圖
表被命名爲以下幾點:
Table_XXX_13_1 ; Table_XXX_14_2 ;Table_XXX_15_3 ; Table_XXX_15_4 ...
等
新視圖的名稱: 'View_XXX_15'
我應該如何進行? 我想過濾'Table_XXX_15%
',試圖使用選擇的東西,
請列出一些信息,我是SQL新手。
鏈接類似的問題:I need to create a view that unions all tables based on their prefix (new tables added monthly)
編輯
下面的代碼無法正常工作:
CREATE PROCEDURE spCreateView2015
@BaseTableName varchar(100),
@View varchar(100),
@s varchar(max),
@v varchar(max)
AS
BEGIN
SET NOCOUNT ON;
set @BaseTableName = 'Table%15%';
set @View = 'View_097_001_test';
set @v =
N'(
select stuff((
select cast('' union all select * from '' as nvarchar(max)) + quotename(''CEE_097_001'')
from information_schema.tables
where table_name like @BaseTableName))
)';
set @s = 'DROP VIEW ' + @View;
EXEC (@s);
set @c = N'CREATE VIEW @View AS ' + @v;
EXEC Sp_executesql @c, N'@View varchar(100), @BaseTableName varchar(100)', @View, @BaseTableName;
OUTPUT:
過程或函數 'spCreateView2015' 需要參數「@BaseTableName ', 那是不供給的。
你已經找到了解決方案。什麼不行? – 2015-03-31 10:28:35
請參閱上文,只是對其進行了編輯。 – 2015-03-31 10:36:11
和什麼不工作? – 2015-03-31 10:44:33