當前位置:首頁 » 編程語言 » sql會自己找表嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql會自己找表嗎

發布時間: 2022-04-11 09:56:44

sql 2000,我用sql新建了一張表,可過一會,那張表自己不見了咋回事啊,是不是sql server做了什麼設置

你是不是在查詢分析器裡面創建表的?
你從下面幾點來檢查下
1.首先確定下,你創建表的時候,上面選擇的資料庫是否正確,是不是創建到別的資料庫中了。
2.確定執行SQL是已經成功了。
不過,很可能是1的原因,創建到別的資料庫中去了,然後你又回來找表的時候又是另一個資料庫
PS:有時候SQL也會出問題的,原來我就遇到過無緣無故丟失數據的情況,大不了再重新試試就好了啊

Ⅱ SQL如何查找含有該數據的所有表

select*from[table1][table2][table3]

where[列名]=123456

想學資料庫的話可以找教程一步一步跟著學哈。

Ⅲ 在SQL中如何查找表

dba下的表
SELECT * FROM dba_tables;
--當前用戶下可以查看的所有表
SELECT * FROM all_tables;
--當前用戶的表
SELECT * FROM user_tables;

SELECT * FROM all_Tables WHERE owner = 'user_name大寫' AND (table_name LIKE '%XX' OR table_name LIKE 'XX%');
是不是你要的。

Ⅳ sql尋找某表

已知欄位可以找,SQL資料庫裡面查詢分析器裡面運行。
select name
from sysobjects
where
id in (
select id
from syscolumns
where name='name'
)
其中'name'是欄位名,你可以用 name like 'name'來查找

根據表的欄位數,即一個表有多少個欄位來查找.
select name from sysobjects
where xtype='U' and info=15(這里是多少個欄位)

根據表的行數來查找, 先運行下面這段話,建立存儲過程.

create procere pro_table_count
(
@num int
)
as
declare @table table(name varchar(100),id int identity(1,1),isbe int)
insert into @table(name) (select name from sysobjects where xtype='U')

declare @tablecount int,@pos int
declare @tablename varchar(100)

declare @count int
declare @sqlstr nvarchar(100)

select @tablecount=count(*) from @table
set @pos=0

while @pos<@tablecount
begin
set @pos=@pos+1
select @tablename=name from @table where id=@pos
set @sqlstr='select @count=count(*) from '+@tablename
exec sp_executesql @sqlstr,N'@count int output',@count output
if @count=@num --修改這里可以檢測是否大於或者小於
update @table set isbe=1 where name=@tablename
end
select name from @table where isbe=1
go
後面就運行這個查詢就可以了
exec pro_table_count @num=2 --2是記錄的行數

要多加點分啊 我是專門給你寫的.. 寫了我10多分鍾呢

Ⅳ 那我用SQL創建表之後,為什麼在所創建的資料庫中找不到呢

用SQL創建表之後,在所創建的資料庫中找不到是設置錯誤造成的,解決方法為:

1、在計算機中,滑鼠左鍵單擊【程序】中的Oracle的連接程序,如下圖所示。

Ⅵ mysql中 如何通過sql語句 找到相應的表

SelectB.name表名稱,A.NAME欄位名稱,C.name欄位類型,A.length長度,A.isnullable是否為空
FROMsyscolumnsA
JOINsysobjectsBONA.id=B.id
JOINsystypesCONA.xusertype=C.xusertype
WHEREB.nameLIKE'%表名稱%'

Ⅶ 如何在SQL中查找數值所在表

哥們兒,資料庫不會這么用的,雖然能做到
如:
1、聲明游標
//關鍵,查詢表名,通過游標可以控製表名逐行篩選
select name from sysobjects
where type='U'
2、開始游標,得到表名@tablename
3、循環拼接sql語句並判斷
@sql = 'select * from ' + @tablename + ' where 1 = 1'
select @sql += ' or name = ' + 你的值 from syscolumns where id = object_id(@tablename)
exec(@sql) --得到的結果,最後你需要怎麼處理就怎麼處理,這里返回的是表
以上只是思路,我是沒這么用過,你自己看著辦

Ⅷ 在SQL中怎麼查找自動生成表中的數據有一個表是每天根據年月日為表名生成的一張表,怎麼查詢裡面的數據

IF EXISTS (SELECT * FROM dbo.sysobjects WHERE type = 'P' AND name = 'P_XXX')
BEGIN
DROP Procere [dbo].[P_XXX]
END
GO

CREATE PROCEDURE dbo.P_XXX
(
@a varchar(100),
@b varchar(100)
)
AS

SET NOCOUNT ON

SET XACT_ABORT ON

BEGIN

DECLARE @sqlstr NVARCHAR(MAX)
DECLARE @date DATETIME
SET @date = GETDATE()

SET @sqlstr = 'select * from T_XXX_'
SET @sqlstr = @sqlstr + CAST(YEAR(@date) AS VARCHAR(4))
SET @sqlstr = @sqlstr + CAST(MONTH(@date) AS VARCHAR(2))
SET @sqlstr = @sqlstr + CAST(DAY(@date) AS VARCHAR(2))
SET @sqlstr = @sqlstr + ' where columna = ''' + @a + ''' and columnb = '''
+ @b + ''''
EXEC sp_executesql @sqlstr
----把EXEC sp_executesql @sqlstr 改成Print @sqlstr再執行可查看@sqlstr拼接效果
RETURN @@ERROR

END

SET NOCOUNT OFF
SET XACT_ABORT OFF
GO

Ⅸ SQL如何查詢一個資料庫中的表

第一次回答:
寫存儲過程或者函數來做。

第二次回答:
過程如下,你還可以完善一下
create procere get_table
@colname varchar(30),
@colvalue varchar(30),
@coltype varchar(30)=null,
@colformat varchar(30)=null
as
begin
declare @sql varchar(100), @tablename varchar(30)
create table #tables( tablename varchar(30))
declare cur_table cursor for
select name from sysobjects a
where type = 'U' and uid = 1 and exists( select 1 from syscolumns b where b.id = a.id and b.name = @colname)
open cur_table
fetch cur_table into @tablename
WHILE @@FETCH_STATUS = 0 begin
select @sql = 'insert into #tables select'''+ @tablename +''' where exists( select 1 from '+ @tablename +' where '+ @colname +' = '''+ @colvalue +''')'
exec(@sql)
fetch cur_table into @tablename
end
close cur_table
deallocate cur_table
select * from #tables
end
go

exec get_table 'name', '張三'

第三次回答:
這個過程我在SQL server 2005中執行過了,沒有問題,而且這語法也在2000中適用。

過程,我寫了幾次,或許你看得是開始我寫的,那有錯,後來更正了。

如果報錯,請把錯誤貼出來。

第四次回答:

你要把你的過程及語句,貼出來嘛,或者說明沒有改動,完全按照我的,那你也得把你的SQL語句貼出來吧?

然後,你說:
報錯如下,我是新手 麻煩大家了:

(所影響的行數為 0 行)

伺服器: 消息 105,級別 15,狀態 1,行 1
字元串 '張' 之前有未閉合的引號。
伺服器: 消息 170,級別 15,狀態 1,行 1
第 1 行: '張' 附近有語法錯誤。

(所影響的行數為 0 行)

伺服器: 消息 170,級別 15,狀態 1,行 1
第 1 行: '=' 附近有語法錯誤。

為什麼有那麼多報錯?是否執行了一次語句就報了你列出的所有錯誤?

務必把你的語句貼出來。像我第三次回答一樣,建立過程的語句(如果你沒有改,則不需要列出只需要說明,沒有改即可),及執行過程的語句(如果你沒有改,則不需要列出只需要說明,沒有改即可)。

第四次回答:

你重新執行一遍一下語句:

選中到「--到這里結束」的語句,一次執行。
drop procere get_table
go
create procere get_table
@colname varchar(30),
@colvalue varchar(30),
@coltype varchar(30)=null,
@colformat varchar(30)=null
as
begin
declare @sql varchar(100), @tablename varchar(30)
create table #tables( tablename varchar(30))
declare cur_table cursor for
select name from sysobjects a
where type = 'U' and uid = 1 and exists( select 1 from syscolumns b where b.id = a.id and b.name = @colname)
open cur_table
fetch cur_table into @tablename
WHILE @@FETCH_STATUS = 0 begin
select @sql = 'insert into #tables select'''+ @tablename +''' where exists( select 1 from '+ @tablename +' where '+ @colname +' = '''+ @colvalue +''')'
exec(@sql)
fetch cur_table into @tablename
end
close cur_table
deallocate cur_table
select * from #tables
end
go

exec get_table 'name, '張三'

--到這里結束

如果仍有問題,那麼執行以下語句:

create table #tables( tablename varchar(30))
insert into #tables select a.name from sysobjects a
where type = 'U' and uid = 1 and exists( select 1 from syscolumns b where b.id = a.id and b.name = 'name')
select * from #tables
drop table #tables

可以把所有包含欄位'name'的表找出來,你自己再仔細研究,使用exec( SQL)的方式 SQL2000也是支持的,實在不行,你就找到表後,自己一個一個表再select也可以得到結果:

select count(1) from tablename where name = '張三'
結果大於零就說明這個表是你要找的表之一了。
自己研究下吧。

Ⅹ SQLserver中CREATE TABLE 建成功後為啥找不到建好的表呢

出現此問題的原因為:創建表後沒有刷新,導致看不到。

解決的方法和詳細的操作步驟如下:

1、第一步,創建表並輸入列名,選擇數據類型,然後設計列,見下圖,轉到下面的步驟。