我有这个:
declare @t1 table
(
[TableName] [nvarchar](100),
[UniqueName] [nvarchar](100),
[FieldName] [nvarchar](100),
[TransID_1] [nvarchar](2000),
[TransID_2] [nvarchar](2000)
)
我需要这样的东西:
declare @t1 table
(
[TableName] [nvarchar](100),
[UniqueName] [nvarchar](100),
[FieldName] [nvarchar](100),
[TransID_'' + @ID1 + ''] [nvarchar](2000),
[TransID_'' + @ID2 + ''] [nvarchar](2000)
)
因为两个TransID字段将具有不同的数字,并且字段名称需要包含这些数字。总共有大约3,000行代码,当我说我需要这样命名时,请相信我。
无论如何......这可以吗?如果是这样,怎么样?
答案 0 :(得分:2)
你需要动态的sql,就像这样......
Declare @ID1 varchar(10) = '20' ,@ID2 varchar(10) = '30'
Declare @Sql Nvarchar(max)
set @Sql = N'declare @t1 table
(
[TableName] [nvarchar](100),
[UniqueName] [nvarchar](100),
[FieldName] [nvarchar](100),
[TransID_' + @ID1 + '] [nvarchar](2000),
[TransID_' + @ID2 + '] [nvarchar](2000)
)
select * from @t1'
Exec sp_executesql @sql