在SSIS 中执行 SQL 任务,我有以下代码:
IF NOT EXISTS(
SELECT * FROM sys.tables t INNER JOIN sys.schemas s on s.schema_id =
t.schema_id
WHERE t.name = 'tableName' AND s.name = 'stg')
BEGIN
CREATE TABLE [stg].[tableName] (
Col1 nvarchar(255),
Col2 nvarchar(1800)
)
END
Run Code Online (Sandbox Code Playgroud)
如何创建tableName变量以便我可以轻松更改名称?
创建一个执行 sql 任务,然后使用直接输入类型在 SqlStatement 中编写此代码:
declare @sch nvarchar(10)
,@tb nvarchar(50)
,@query nvarchar(1000)
Set @sch= ?
Set @tb= ?
IF NOT EXISTS(
SELECT * FROM sys.tables t INNER JOIN sys.schemas s on s.schema_id =
t.schema_id
WHERE t.name = @tb AND s.name = @sch)
BEGIN
set @query='CREATE TABLE '+@sch+'.'+@tb+' ( Col1 nvarchar(10),Col2 nvarchar(10) )'
exec sp_executesql @query
END
Run Code Online (Sandbox Code Playgroud)
然后在参数映射选项卡中使用参数名称 0 和 1(按照代码中的顺序)映射您的变量,
即使您可以使用此解决方案动态创建列。