⑴ Oracle不同版本執行相同sql語句,結果不一樣,請大神賜教
應該是兩個版本對語句編譯時的執行順序有差異,第一個版本在all=all滿足的條件下直接忽略了字元與數字類型不匹配的錯誤。而第二個版本還是則從左到右順序執行,首先觸發了錯誤語句
⑵ mysql資料庫如何用一條語句同時查多個資料庫
1.子查詢方法
select*
fromDB2.table2
where欄位in(selecttable1中相應欄位fromDB1.table1wheretable1中相應欄位=相應值)
2.左連接方法
selecttable2.*
fromDB2.table2leftjoinDB1.table1
ontable1.欄位=table2.相應欄位
wheretable2.相應欄位=相應值;
2.交叉連接方法
selecttable2.*
fromDB2.table2,DB1.table1
wheretable1.欄位=table2.相應欄位andtable2.相應欄位=相應值;
⑶ 在一條SQL語句中同時對兩個資料庫中的不同表進行操作,有什麼好的解決方法嗎
1.如果是同一伺服器:
假設 另一個資料庫名為'資料庫B',並且當然用戶對兩個資料庫都有對應許可權
select into [table] from [資料庫B].[所有者].[表名]
2.如果不在同一伺服器
select into [table] from opendatasource('sqloledb','data source=伺服器名或IP;user id=登陸名;password=口令').資料庫B.表名
⑷ 不同的資料庫支持的sql語句都相同么
sql語句的寫法都很類似,但不同資料庫基本都有自己專用的函數(微軟還自己搞了一堆標准),如果sql語句用到了這些函數那就不能通用了,比如取當前日期,sqlserver是select
getdate();oracle
是select
sysdate
from
al;類似的不同還很多.
⑸ 在一條SQL語句中同時對兩個資料庫中的不同表進行操作,有什麼好的解決方法嗎
解決辦法:事務和存儲過程。
具體操作:
create PROCEDURE [存儲過程名]
(
@Title nvarchar(50),
@Content nvarchar(1000),
@Publisher nvarchar(200),
@UserID varchar(10)
)
AS
BEGIN
declare @posid int
SET NOCOUNT ON
begin transaction [事務名稱]
insert into Bulletin(....) --向Bulletin表添加記錄
if @@error $amp;<amp;$gt; 0="""" begin rollback transaction [事務名稱]
select N '添加失敗! ' as msg
return(0)
end
set @posid = @@identity --得到BulletinId的值
insert into ButtetinAuth(....) --向ButtetinAuth表添加記錄
if @@error $amp;<amp;$gt; 0="""" begin rollback transaction [事務名稱]
select N '添加失敗! ' as msg
return(0)
end
commit transaction [事務名稱]
select N '添加成功! ' as msg
END
"insert 表1;insert 表2 "這種方式是可以,但不能保證同步(如插入第一個表後就停電了,第二個表還沒來得及插入,所以就不同步了),要數據同步就要用資料庫事務。
private SqlConnection myConn = new SqlConnection(); //連接
private SqlTransaction Transaction = null; //事務
private SqlCommand Cmd = new SqlCommand();
假設myConn已經配置好
事務開始:
try
{
myConn.Open();
Transaction = myConn.BeginTransaction(); //事務開始
Cmd.Transaction = Transaction; //將Cmd指向Transaction事務
string strSQL= "insert 表1 ";
Cmd.CommandText = strSQL; //插入第一個表
Cmd.ExecuteNonQuery();
strSQL= "insert 表2 ";
Cmd.CommandText = strSQL; //插入第一個表
Cmd.ExecuteNonQuery();
Transaction.Commit(); //提交事務
}
catch (Exception e)
{
Transaction.Rollback(); //撇消事務
throw new Exception(e.Message);
⑹ sql查詢語句問題(同樣的語句不同資料庫結果)
mysql沒有建索引吧
⑺ 一條SQL語句該如何查詢兩個資料庫(同一個實
如果你保證兩個資料庫可以互相連通就可以。。比如,a,b兩個資料庫,可以在a資料庫中查詢b資料庫的表信息,比如,在a資料庫中執行
select
*
from
b.表名。
⑻ 用sql語句 如何修改 不同版本的mysql資料庫的欄位名
用mysql自帶的導入導出功能就可以,在最後他會需要你校對欄位名,那裡就可以統一
⑼ 不同的資料庫支持的sql語句都相同么
sql語句的寫法都很類似,但不同資料庫基本都有自己專用的函數(微軟還自己搞了一堆標准),如果sql語句用到了這些函數那就不能通用了,比如取當前日期,sqlserver是select getdate();oracle 是select sysdate from al;類似的不同還很多.
⑽ C#如何連接兩個不同版本的SQLserver資料庫
如果我沒記錯的話,你必須要先裝SQL2000,再裝2008這樣才行,不然2000好像裝不上。
安裝的時候你修改一下資料庫實例名就好了!