SQL語法一問 |
尚未結案
|
supermp54
一般會員 發表:22 回覆:24 積分:9 註冊:2004-01-02 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
supermp54
一般會員 發表:22 回覆:24 積分:9 註冊:2004-01-02 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 請試試以下修改! declare @aa varchar(100)
declare @sql varchar(500) select @aa='''111'',''222'''
select @sql = 'insert into #tmp select * from tablename where no in ('+@aa+')' select * into #tmp from tablename where 1=2
execute(@sql) select * from #tmp
|
supermp54
一般會員 發表:22 回覆:24 積分:9 註冊:2004-01-02 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
select * into #tmp from tablename where 1=2
這行的目的是先建立一個空的 temp table, 以方便在 execute 中的指令將資料放入, 若是直接在 execute 使用 select into 的 temp table 似乎是和現在執行指令不同的 scope, 所以無法存取得到, 還有另一種方式也是可以解決, 利用全域的 temp table, 也就是 ##tmp , 這樣就可以直接使用 select into 的方式, 如, declare @aa varchar(100)
declare @sql varchar(500) select @aa='''111'',''222'''
select @sql = 'select * into ##tmp from tablename where no in ('+@aa+')'
execute(@sql)
select * from ##tmp
|
supermp54
一般會員 發表:22 回覆:24 積分:9 註冊:2004-01-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |