110,530
社区成员
发帖
与我相关
我的任务
分享
Create proc getTableName
@time datetime,
@tableName varchar(99) output --返回的表名
as
begin
--根据@time时间拼接字符串成您的表名,如YYYY_MM_DD_001
set @tableName='YYYY_MM_DD_001' --这个应该是根据@time拼接字符串形成
--判断database中是否存在YYYY_MM_DD_001表,不存在则创建
if object_id(@tableName,N'U') is null
begin
declare @sql varchar(max)
set @sql='
Create table '+@tableName+'(
F1 varchar(max),
......
)'
print @sql --你也可以打印出@sql语句查看是否正确
exec (@sql)
end
c#代码调用这个存储过程,你就能获取到当前时间对应的表名@tableName了,然后你在代码中实现数据的插入;
当然,你若可以将数据形成xml直接抛送给存储过程,由存储过程在上述sql后面直接解析xml插入新表那么效率更高