動態sql插入表

2021-04-17 22:27:09 字數 2054 閱讀 6214

建表:

/****** object:  table [dbo].[tbl_billinfo_0805]    script date: 2008-5-26 15:41:17 ******/

if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[tbl_billinfo_0805]') and objectproperty(id, n'isusertable') = 1)

drop table [dbo].[tbl_billinfo_0805]

go/****** object:  table [dbo].[tbl_billinfo_0805]    script date: 2008-5-26 15:41:19 ******/

create table [dbo].[tbl_billinfo_0805] (

[freltaskid] [int] not null ,

[fcaller] [varchar] (24) collate chinese_prc_ci_as not null ,

[fcallee] [varchar] (24) collate chinese_prc_ci_as null ,

[fsetuptime] [datetime] null ,

[fconntime] [datetime] null ,

[timelen] [int] null ,

[fflag] [int] null

) on [primary]

go儲存過程:

create procedure dbo.bill_inserttotable

@stablename varchar(24),

@ireltaskid int,

@scaller varchar(24),

@scallee varchar(24),

@sdate varchar(24),

@ssetuptime varchar(24),

@sconntime varchar(24),

@itimelen int,

@iflag int

asbegin

declare @ssetup varchar(50)

declare @sconn    varchar(50)

declare @table varchar(50)

set @ssetup=convert(datetime,(@sdate+' '+@ssetuptime),120)

set @sconn=convert(datetime,(@sdate++' '+@sconntime),120)

set @iflag=0

set @table=@stablename

declare       @sql       varchar(4000)

set @sql= 'insert into  ' + @stablename + ' (freltaskid,fcaller,fcallee,fsetuptime,fconntime,timelen,fflag) values(' +

''''+ cast( @ireltaskid as varchar(24)) +'''' + ',' +

'''' + @scaller + '''' + ',' +

'''' + @scallee + '''' + ',' +

'''' + @ssetup  + ''''+ ',' +

'''' + @sconn + '''' + ',' +

''''+ cast(@itimelen as varchar(24)) +''''+ ',' +

''''+ cast(@iflag as varchar(24)) +''''  + ')'

--print @sql

exec (@sql)

select @@rowcount

endgo

錯誤:一開始沒有把@ireltaskid 之類的引數轉換為varchar型別的,所以總是提示連線時從varchar轉換到

nt是出現錯誤。

修改後可以了。

mybatis動態插入sql語句

if標籤就類似於jstl的if標籤 在執行多條件選擇時,可能會多出乙個and 關鍵字。譬如 select last name,email,id,gender from employee where id if and last name like if and gender if and email...

SQL動態交叉表

動態交叉表就是列表可以根據表中資料的情況動態建立列。動態查詢不能使用 select 語句實現,它可以利用儲存過程實現。思路是 首先檢索列頭資訊,形成乙個游標,然後遍歷游標,將上面靜態交叉表實現過程中使用 case 語句判斷的內容用游標裡的值替代,形成一條新的 sql查詢語句,然後執行並返回結果。下面...

SQL動態表查詢

在程式設計過程中,經常會遇到需要根據使用者的選擇進行查詢的情況,這時,使用者不同的選擇可能需要查詢不同的表名,而且這個表名可能還不宜事先在程式中定死,需要能動態的隨機選擇。當然還包括表名和使用者的某些資訊相關,可能不同的使用者需要進入不同的表,甚至表名的一部分就是使用者名稱的一部分,等等。對於這些情...