[UID] [char] (16) COLLATE Chinese_PRC_CI_AS NOT NULL,
[车牌] [varchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
[车型] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[识别车牌号] [varchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
[识别车型] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[收费金额] [money] NULL ,
[交易状态] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[有图像] [bit] NOT NULL ,
[离开时间] [datetime] NULL ,
[速度] [float] NULL,
Constraint'+' PK_'+@TableName+' primary key(收费站点编号,车道号,进入时间,UID)
) ON [PRIMARY]'
Execute(@Sql)
end
set @sql = 'select @Cnt=count(*) from '+@TableName+ ' where 收费站点编号='''+@收费站点编号+''' and 车道号='+cast(@车道号 as varchar(4))+' and 进入时间='''+@进入时间+''' and UID='''+@UID+''''
set @sql = @sql + ' if @Cnt=0 '
set @sql=@sql+'insert '+@TableName+' values('''+@收费站点编号+''','+cast(@车道号 as varchar(4))+','''+@进入时间+''','''+@Uid+''','''+@车牌+
''','''+@车型+''','''+ @识别车牌号+''','''+@识别车型+''','+Cast(@收费金额 as varchar(8))+','''+@交易状态+''','+cast(@有图像 as varchar(1))+
','''+@离开时间+''','+Cast(@速度 as varchar(8))+')'
--Execute(@sql)
exec sp_executesql @sql,N'@Cnt int output',@HasInsert output
end
补充资料二、
SQL Server循环执行动态SQL语句.
使用Navicate工具执行查询成功。
declare @name nvarchar(100)declare @sql nvarchar(200)
declare @i int
set @i =10000
while @i<=99999
begin
set @name = 'test' + cast(@i as varchar(20))
set @sql =N'SELECT * INTO '+ @name +' FROM test'
exec sp_executesql @sql
print @name
set @i=@i + 1
end
以上就是软件开发网小编为大家整理的SQL Server执行动态SQL的正确方式,希望可以帮助到大家。
您可能感兴趣的文章:SQL SERVER 中构建执行动态SQL语句的方法用非动态SQL Server SQL语句来对动态查询进行执行










