if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Favorite]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Favorite]
GO
CREATE TABLE [dbo].[Favorite] (
[FavoriteId] [int] NOT NULL ,
[FavoriteName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[BookInfoId] [int] NOT NULL ,
[AssociatorId] [int] NOT NULL ,
[Del] [tinyint] NOT NULL
) ON [PRIMARY]
GO
请问一般情况下winform要运行创建临时表,然后对临时表进行操作的过程,要怎么处理?多次执行sqlCommond?
SQL临时表操作,都放在存储过程里面,你想怎么搞就怎么搞
按你的说法是想 在代码里面把创建操作临时表作为参数传递给SQL执行,可以这样
cmd.CommandText="create table....."; cmd.ExecuteNonQuery(); 循环或者其他逻辑 { cmd.CommandText=" ...."; cmd.ExecuteNonQuery(); }
您好,我试过把我上面的sql全放在一个Command里执行,但是不管用啊
@乔巴船长: 你是说你的 command里面的东西 在SQL查询分析器里面可以执行,在代码里面添加就没得到你要的结果集?应该不会吧,或者你调试过程中有米有什么提示
@风醉:
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=ufdata_001_2014;Integrated Security=True"); string str = "if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Favorite]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)"; str += " drop table [dbo].[Favorite] "; str += " GO"; str += "CREATE TABLE [dbo].[Favorite] ([FavoriteId] [int] NOT NULL ,[FavoriteName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,[BookInfoId] [int] NOT NULL ,[AssociatorId] [int] NOT NULL ,[Del] [tinyint] NOT NULL ) ON [PRIMARY] "; str += "GO"; SqlCommand cmd = new SqlCommand(str, conn); conn.Open(); cmd.ExecuteNonQuery();
@风醉: 上面这样会有问题,请问我要如何修改?
@乔巴船长: 临时表要加 # 【Create table #temp_project】,你直接这样创建物理表,应该有权限限制吧
@风醉: 谢谢,搞定了,是我自己的问题,没加 go 多几个空格就好了
经过分析,我只能认为你SQL SERVER学习的时间肯定NET学习的时间长。
居然知道临时表,不错,值得表扬。
可是WINFORM和临时表这两个词放在一起怎么这么别扭啊,你能告诉我为什么吗?
为什么我的老师从来没有教过我这样做呢?
哦,对了,全看的书,书上也没有这样说过,看来我看的书太少了。
我要导入excel的数据到数据库,但是期间要经过处理,所以想先导到临时表,不知道我这么说您听明白没有
@乔巴船长: 所以我说你应该多学学NET。
我没有看出来在NET中使用临时表的任何必要。
在NET中一大堆对象可以保存临时数据,既然你要处理过再保存到数据库,为什么要保存到临时表?
怕掉电,但是导入EXCEL这个事情是一次性行为,或者说,导入是几分钟或者几个小时内完成的,
为什么要保存到临时表?
一个就可以,有多少代码全都拿出来用就行了,一次全都执行了,