由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - temp table problem
相关主题
怎样解决 Index for NULL value请教三个Key的property,
请教一个SQL的问题sql 请教
难。想了一天了。大牛请进。Access 里面两个 column不一样的table 能combine 到一起吗?
请帮我看看,什么地方错了?高手请进
问一个SQL Server的问题any group function reutrn null if there is null value?
Urgent SQL problem!请问sql 有条件性的select columns
帮忙解释下这个查询,有关NULL的如何除去duplicate rows?
how to list all tables in my account?A sql question
相关话题的讨论汇总
话题: test话题: table话题: select话题: col1话题: object
进入Database版参与讨论
1 (共1页)
R*********r
发帖数: 225
1
IF (2>1)
SELECT 1 as col1 INTO #test
ELSE
BEGIN
IF OBJECT_ID(N'tempdb.dbo.#test') IS NOT NULL DROP TABLE #test
SELECT 2 as col1 INTO #test
END
上面这个语句报错:
Msg 2714, Level 16, State 1, Line 7
There is already an object named '#test' in the database.
把#test换成permenant table就没问题,请问这个怎么解决?
a9
发帖数: 21638
2
if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb
..#test') and type='U')
drop table #test
select 1 as col1 into #test

【在 R*********r 的大作中提到】
: IF (2>1)
: SELECT 1 as col1 INTO #test
: ELSE
: BEGIN
: IF OBJECT_ID(N'tempdb.dbo.#test') IS NOT NULL DROP TABLE #test
: SELECT 2 as col1 INTO #test
: END
: 上面这个语句报错:
: Msg 2714, Level 16, State 1, Line 7
: There is already an object named '#test' in the database.

S*****0
发帖数: 538
3
这个没问题,刚试过。 估计,是#test table 需要先定义,不然,SQL Server
paser 会遇到SELECT ...INTO #test 就定义一次#test, 导致错误 。
IF OBJECT_ID(N'tempdb.dbo.#test') IS NOT NULL DROP TABLE #test
CREATE TABLE #test(col1 int)
IF (2>1)
INSERT INTO #test(col1)
SELECT 1 as col1
ELSE
BEGIN
INSERT INTO #test(col1)
SELECT 2 as col1
END

【在 R*********r 的大作中提到】
: IF (2>1)
: SELECT 1 as col1 INTO #test
: ELSE
: BEGIN
: IF OBJECT_ID(N'tempdb.dbo.#test') IS NOT NULL DROP TABLE #test
: SELECT 2 as col1 INTO #test
: END
: 上面这个语句报错:
: Msg 2714, Level 16, State 1, Line 7
: There is already an object named '#test' in the database.

R*********r
发帖数: 225
4
yeah,这个是工作的。多谢。
不过如果我想让#test的结构在不同的条件下完全不一样就不行了,不好事先定义。
下面两个例子,第一个报错,说#Test 已经存在,但是如果我把它换成一个permanent
table就完全没问题。
BTW: 用的是SQL SERVER 2008 R2
IF (2>1)
BEGIN
IF OBJECT_ID(N'tempdb.dbo.#Test','U') IS NOT NULL DROP TABLE #Test
SELECT 1 AS col1 into #Test
END
ELSE
BEGIN
IF OBJECT_ID(N'tempdb.dbo.#Test','U') IS NOT NULL DROP TABLE #Test
SELECT 2 as col1 INTO #Test
END
IF (2>1)
BEGIN
IF OBJECT_ID(N'dbo.test','U') IS NOT NULL DROP TABLE dbo.test
SELECT 1 AS col1 into dbo.test
END
ELSE
BEGIN
IF OBJECT_I

【在 S*****0 的大作中提到】
: 这个没问题,刚试过。 估计,是#test table 需要先定义,不然,SQL Server
: paser 会遇到SELECT ...INTO #test 就定义一次#test, 导致错误 。
: IF OBJECT_ID(N'tempdb.dbo.#test') IS NOT NULL DROP TABLE #test
: CREATE TABLE #test(col1 int)
: IF (2>1)
: INSERT INTO #test(col1)
: SELECT 1 as col1
: ELSE
: BEGIN
: INSERT INTO #test(col1)

a9
发帖数: 21638
5
select into 会自动创建表,你第一次运行的时候肯定不会报这个提示。
你再次运行就有这个错误提示了。

permanent

【在 R*********r 的大作中提到】
: yeah,这个是工作的。多谢。
: 不过如果我想让#test的结构在不同的条件下完全不一样就不行了,不好事先定义。
: 下面两个例子,第一个报错,说#Test 已经存在,但是如果我把它换成一个permanent
: table就完全没问题。
: BTW: 用的是SQL SERVER 2008 R2
: IF (2>1)
: BEGIN
: IF OBJECT_ID(N'tempdb.dbo.#Test','U') IS NOT NULL DROP TABLE #Test
: SELECT 1 AS col1 into #Test
: END

R*********r
发帖数: 225
6
nope,第一次就报错。

【在 a9 的大作中提到】
: select into 会自动创建表,你第一次运行的时候肯定不会报这个提示。
: 你再次运行就有这个错误提示了。
:
: permanent

1 (共1页)
进入Database版参与讨论
相关主题
A sql question问一个SQL Server的问题
菜鸟问题,急Urgent SQL problem!
Oracle char AND varchar2 datatype question.帮忙解释下这个查询,有关NULL的
急问一个关于T-SQL的问题,谢谢how to list all tables in my account?
怎样解决 Index for NULL value请教三个Key的property,
请教一个SQL的问题sql 请教
难。想了一天了。大牛请进。Access 里面两个 column不一样的table 能combine 到一起吗?
请帮我看看,什么地方错了?高手请进
相关话题的讨论汇总
话题: test话题: table话题: select话题: col1话题: object