一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

SQL Server的C#連接及對象存在判斷

 goodwangLib 2015-05-09

關(guān)于C#連接數(shù)據(jù)庫的介紹,這篇文章總結(jié)的比較全面。http://www./Linux/2015-02/114084.htm

對于C#連接MS SQL Server,主要使用sqlconnection。認(rèn)證方式主要采用windows集成認(rèn)證方式或者SQL Server認(rèn)證模式。連接語句主要如下所示:

string constr = "server=.;database=myschool;integrated security=SSPI";

string constr = "server=.;database=myschool;uid=sa;pwd=sa";

string constr = "data source=.;initial catalog=myschool;uid=sa;pwd=sa";

說明:

參考:http://www./Linux/2015-02/114085.htm

1) server與data source: 經(jīng)過實驗兩者效果差不多,任取其一即可??梢杂弥鳈C名字或者當(dāng)前機子“.”代替。不過一般我們安裝的都是類似于hostname\SQLEXPRESS的數(shù)據(jù)源或者主機,所以這里需要寫成"server=.\SQLEXPRESS;"或者“data source=hostname\SQLEXPRESS"之類的形式。

2) database與initial catalog:兩者效果似乎也差不多。主要用來指定數(shù)據(jù)庫

3) integrated security: 可以取值為true、false、yes、no或者SSPI。SSPI表示Security Support Provider Interface,效果相當(dāng)于true。當(dāng)設(shè)置為true時候?qū)⒉捎脀indows認(rèn)證,這時候指定的用戶名密碼將無效。當(dāng)沒有指定integrated security值或者值為false的時候,需要指定用戶名和密碼,使用SQL Server方式登錄。

例子:

          //String conStr = @"Data Source=TAN\SQLEXPRESS;Initial Catalog=tan;Integrated Security=SSPI";
          //String conStr = @"Data Source=TAN\SQLEXPRESS;Initial Catalog=tan;Integrated Security=false;uid=sa;pwd=123";
            String conStr = @"server=.\SQLEXPRESS;database=tan;uid=sa;pwd=123";
            SqlConnection con = new SqlConnection(conStr);
            String sql = @"IF NOT EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'Persons') AND OBJECTPROPERTY(id,N'iSUSErTable') = 1)
                        CREATE TABLE Persons (Id_P int,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255))";
            try
            {
                SqlCommand com = new SqlCommand(sql, con);
                con.Open();
                Console.WriteLine("Connect Sucess!");
                com.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
            finally
            {
                con.Close();
            }
            Console.ReadKey();

SQL Server判斷對象存在

我們在做sql操作時候,如果需要自動化的腳本運行時候,往往運行第二次第三次時候,可能第一次運行的有些操作就不需要了。或者我們可能要根據(jù)數(shù)據(jù)庫的狀態(tài)決定后面需要什么操作,這時候判斷數(shù)據(jù)庫中的一些對象存在與否就很重要了。比如想知道一個數(shù)據(jù)庫是否存在,想創(chuàng)建一個表卻不知道它是不是已經(jīng)有了呢,而又想避免誤操作帶來的錯誤,判斷它們存在就很有用了。

下面列出了一些判斷對象存在的語句,很有參考意義。

1 判斷數(shù)據(jù)庫是否存在
if exists (select * from sys.databases where name = ’數(shù)據(jù)庫名’) 
  drop database [數(shù)據(jù)庫名]
2 判斷表是否存在
if exists (select * from sysobjects where id = object_id(N’[表名]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1) 
  drop table [表名] 
3 判斷存儲過程是否存在
if exists (select * from sysobjects where id = object_id(N’[存儲過程名]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1) 
  drop procedure [存儲過程名]
4 判斷臨時表是否存在
if object_id(’tempdb..#臨時表名’) is not null   
  drop table #臨時表名
5 判斷視圖是否存在
--SQL Server 2000 
IF EXISTS (SELECT * FROM sysviews WHERE object_id = ’[dbo].[視圖名]’ 
--SQL Server 2005 
IF EXISTS (SELECT * FROM sys.views WHERE object_id = ’[dbo].[視圖名]’
6 判斷函數(shù)是否存在
--  判斷要創(chuàng)建的函數(shù)名是否存在   
  if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[函數(shù)名]’) and xtype in (N’FN’, N’IF’, N’TF’))   
  drop function [dbo].[函數(shù)名]
7 獲取用戶創(chuàng)建的對象信息
SELECT [name],[id],crdate FROM sysobjects where xtype=’U’ 
/* 
xtype 的表示參數(shù)類型,通常包括如下這些 
C = CHECK 約束 
D = 默認(rèn)值或 DEFAULT 約束 
F = FOREIGN KEY 約束 
L = 日志 
FN = 標(biāo)量函數(shù) 
IF = 內(nèi)嵌表函數(shù) 
P = 存儲過程 
PK = PRIMARY KEY 約束(類型是 K) 
RF = 復(fù)制篩選存儲過程 
S = 系統(tǒng)表 
TF = 表函數(shù) 
TR = 觸發(fā)器 
U = 用戶表 
UQ = UNIQUE 約束(類型是 K) 
V = 視圖 
X = 擴展存儲過程 
*/ 
8 判斷列是否存在
if exists(select * from syscolumns where id=object_id(’表名’) and name=’列名’) 
  alter table 表名 drop column 列名 
9 判斷列是否自增列
if columnproperty(object_id(’table’),’col’,’IsIdentity’)=1 
  print ’自增列’ 
else 
  print ’不是自增列’ 
SELECT * FROM sys.columns WHERE object_id=OBJECT_ID(’表名’) 
AND is_identity=1 
10 判斷表中是否存在索引
if exists(select * from sysindexes where id=object_id(’表名’) and name=’索引名’)   
  print  ’存在’   
else   
  print  ’不存在 
11 查看數(shù)據(jù)庫中對象
SELECT * FROM sys.sysobjects WHERE name=’對象名’

本文永久更新鏈接地址http://www./Linux/2015-02/114086.htm

linux

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩aa一区二区三区| 美女激情免费在线观看| 午夜视频成人在线免费| 日韩一区二区三区四区乱码视频| 精品国产一区二区欧美| 亚洲成人免费天堂诱惑| 欧美日韩国产黑人一区| 亚洲内射人妻一区二区| 91超频在线视频中文字幕| 国产精品午夜福利免费阅读| 少妇肥臀一区二区三区| 国产精品推荐在线一区| 亚洲中文字幕免费人妻| 五月综合婷婷在线伊人| 高清免费在线不卡视频| 国产精品制服丝袜美腿丝袜| 91人妻人人澡人人人人精品| 人妻熟女欲求不满一区二区| 国产女性精品一区二区三区 | 国产一级特黄在线观看| 日韩夫妻午夜性生活视频| 日韩欧美中文字幕人妻| 乱女午夜精品一区二区三区| 亚洲av熟女一区二区三区蜜桃| 九九热精彩视频在线免费| 亚洲欧美中文字幕精品| 日韩欧美三级视频在线| 国产熟女一区二区三区四区| 十八禁日本一区二区三区| 欧美精品一区二区水蜜桃| 中文字幕精品一区二区三| 国产原创中文av在线播放| 色一情一伦一区二区三| 婷婷色国产精品视频一区| 亚洲精品福利视频你懂的| 国产又大又黄又粗的黄色| 情一色一区二区三区四| 青青操成人免费在线视频| 女厕偷窥一区二区三区在线| 日本不卡视频在线观看| 中文日韩精品视频在线|