CREATE PROCEDURE SP_SYS_DynamicCreate
AS
BEGIN
SET NOCOUNT ON;
Declare @sql nvarchar(max)
Set @sql = ''
;WITH NewTable As (
Select 表名,表中文名 From Sys_CreateTable Group By 表名,表中文名
)
Select @sql = @sql + Case When number = 1 Then ');
-- Drop Table '+表名+';
CREATE TABLE '+表名+' (
' Else '' End + (
Case When number = 1 Then ' ['+英文名+'] '+[类型、宽度、精度] + ' NULL' Else '
,['+英文名+'] '+[类型、宽度、精度] + ' NULL' End) From (
Select row_number()OVER(PARTITION BY a.表名 ORDER BY 序号 asc) As number,b.* From NewTable As A
Left Join Sys_CreateTable As b On a.表名 = b.表名
) As o
Set @sql = Right(@sql,LEN(@sql) -2 ) + ')'
--Print @sql
Exec (@sql)