亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

Sql語句不能識別Go的解決辦法(動態創建表的觸發器)

2024-07-21 02:49:42
字體:
來源:轉載
供稿:網友
Sql語句不能識別Go的解決辦法(動態創建表的觸發器)問題來源

用sqlserver直接打開sql文本,執行沒問題,但是當用Sqlcommand類執行cmdtext命令文本時總是失敗報錯。

原因分析及解決

用數據庫直接執行sql語句沒問題,甚至還可以用Go來進行分批處理,但是當你用鏈接類訪問數據庫,并執行sql語句時就有些限制,如下:

System.Data.SqlClient.SqlCommand cmd;try{     using (System.Data.SqlClient.SqlConnection newconn = new System.Data.SqlClient.SqlConnection("Data Source=.;Initial Catalog=Rfa_LPP3;Integrated Security=True"))   {      cmd = new System.Data.SqlClient.SqlCommand("Create trigger triggerName  on  dbo.tableName    for insert    as     begin    declare @ID int;    select @ID=ID from inserted;   PRint @ID   end", conn);      cmd.ExecuteNonQuery();      cmd.Dispose();   }}cath(Exception ex){   throw;//會拋出異常}

會“go附近有語法錯誤”“'CREATE TRIGGER' 必須是查詢批次中的第一個語句”等錯誤

首先來看下GO的用法:

SQL Server 實用工具將 GO 解釋為應將當前的 Transact-SQL 批處理語句發送給 SQL Server 的信號。SQL Server 應用程序可將多條 Transact-SQL 語句作為一個批處理發給 SQL Server 去執行。在此批處理中的語句編譯成一個執行計劃。程序員在 SQL Server 實用工具中執行特定語句,或生成 Transact-SQL 語句腳本在 SQL Server 實用工具中運行,用 GO 來標識批處理的結束

注意:1.GO 命令和Transact-SQL 語句不可在同一行上。但在 GO 命令行中可包含注釋。2.CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW 語句不能在批處理中與其它語句組合使用。批處理必須以 CREATE 語句開始。所有跟在該批處理后的其它語句將被解釋為第一個 CREATE 語句定義的一部分

再來看看SqlCommand類的解釋:表示要對 SQL Server 數據庫執行的一個 Transact-SQL 語句或存儲過程。所以用SqlCommand去執行的文本內容可以是多條sql語句,或者是一個存儲過程,或者觸發器創建等,但是不能與觸發器創建等組合使用,且不能使用Go批結束命令。

但是,我又想在一個MySQL.sql文本中一起執行,該怎么辦呢?

提供三種思路:

1.將創建觸發器的sql當字符串放到變量里面,然后exec執行變量。

2.將創建觸發器的sql放在存儲過程,然后exec存儲過程執行。

3.將創建觸發器的sql單獨執行一次。每個創建的sql單獨取出來執行。

最后貼上代碼.
1.方法1可執行的sql
USE [LPP12]  declare @sql nvarchar(max);set @sql='Create trigger triggerName  on  dbo.tableName    for insert    as     begin    declare @ID int;    select @ID=ID from inserted;   print @ID   end';exec(@sql);

2.方法2的sql

create procedure proc_nameasbegindeclare @sql nvarchar(max);set @sql='Create trigger triggerName  on  dbo.tableName    for insert    as     begin    declare @ID int;    select @ID=ID from inserted;   print @ID   end';exec(@sql); end

3.方法3:將sql存放在xml里面,每次取出執行一次。

//xml內容<?xml version="1.0" encoding="utf-8" ?><TR>  <add name="trigger_insert" value="trigger_familyContent_insert"     value="Create trigger trigger_nameon dbo.tablenamefor insertas begindeclare @ID int;select @ID=ID from inserted; end"></add>  <add     name="trigger_insert"     value="Create trigger trigger_nameon dbo.tablenamefor insertas begindeclare @ID int;select @ID=ID from inserted; end"></add>  </TR> //c#代碼 System.Data.SqlClient.SqlCommand cmdnew;                        try                        {                            string _XmlPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"/SqlCreateTrggers.xml";                            XmlDocument doc = new XmlDocument();                            doc.Load(_XmlPath);                            XmlNodeList nodes = doc.SelectSingleNode("TR").ChildNodes;                                                        using (System.Data.SqlClient.SqlConnection newconn = new System.Data.SqlClient.SqlConnection("Data Source=.;Initial Catalog=Rfa_LPP3;Integrated Security=True"))                            {                                newconn.Open();                                cmdnew = new System.Data.SqlClient.SqlCommand();                                foreach (XmlElement node in nodes)                                {                                    string value = node.Attributes["value"].Value;                                    cmdnew = new System.Data.SqlClient.SqlCommand(value.Replace("/r", "  ").Replace("/n", "  ").Replace("/t", "  "), newconn);                                    int count = cmdnew.ExecuteNonQuery();                                }                                cmdnew.Dispose();                                newconn.Close();                            }                        }                        catch (Exception ex)                        {                            Console.WriteLine(ex.Message);                            Console.ReadKey();                        }

有錯歡迎指正。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日本精品在线| 中文字幕亚洲综合久久| 亚洲国产日韩精品在线| 成人有码视频在线播放| 久久精品免费电影| 亚洲精品美女视频| 欧美激情亚洲另类| 国产一区二区在线免费视频| 亚洲激情视频网站| 欧美国产亚洲视频| 久久久精品美女| 中文字幕亚洲一区二区三区五十路| 国产精品福利在线观看网址| 中日韩午夜理伦电影免费| 日韩av中文字幕在线| 亚洲欧美精品suv| 97碰在线观看| 亚洲有声小说3d| 亚洲高清福利视频| 久久久精品免费| 日韩成人激情视频| 在线亚洲国产精品网| 88国产精品欧美一区二区三区| 亚洲黄色av女优在线观看| 自拍偷拍亚洲区| 日韩中文字幕在线| 亚洲性夜色噜噜噜7777| 狠狠躁夜夜躁人人躁婷婷91| 国产成人激情小视频| 国产精品∨欧美精品v日韩精品| 欧美高清视频在线播放| 91精品国产色综合| 国产成人亚洲综合91| 最近2019中文字幕mv免费看| 亚洲福利在线观看| 亚洲mm色国产网站| 日韩中文字幕在线精品| 亚洲国产97在线精品一区| 久久久999国产精品| 久久视频国产精品免费视频在线| 亚洲自拍另类欧美丝袜| 亚洲国产欧美一区二区三区久久| 精品在线观看国产| 97人人爽人人喊人人模波多| 日韩一区二区三区在线播放| 国产在线视频不卡| 国模视频一区二区三区| 亚洲国产小视频| 九九视频这里只有精品| 激情懂色av一区av二区av| 在线观看免费高清视频97| 亚洲新声在线观看| 亚洲第五色综合网| 91av国产在线| 亚洲欧美精品在线| 欧美黄色性视频| 日韩高清电影好看的电视剧电影| 久久琪琪电影院| 欧美日韩性视频| 欧美男插女视频| 亚洲第一在线视频| 久久99热精品这里久久精品| 日韩毛片在线观看| 欧美大片在线看免费观看| 97婷婷涩涩精品一区| 日韩视频在线免费| 亚洲影院污污.| 日韩av大片免费看| 欧美高跟鞋交xxxxhd| 日韩av片永久免费网站| 成人性生交大片免费观看嘿嘿视频| 国产精品视频网| 国产精品精品视频一区二区三区| 亚洲视频在线观看免费| 亚洲欧美日韩久久久久久| 日韩女优人人人人射在线视频| 久久国产加勒比精品无码| 久久精品视频网站| 国产精品爱久久久久久久| 久久天堂电影网| 欧美成人剧情片在线观看| 97在线看福利| 欧美猛交免费看| 日韩精品欧美激情| 成人在线视频福利| 国产成人亚洲综合91精品| 日本一欧美一欧美一亚洲视频| 国产中文日韩欧美| 欧美一级淫片videoshd| 欧美精品久久一区二区| 国产成人啪精品视频免费网| 久久精品一偷一偷国产| 亚洲影院在线看| 亚洲黄色在线看| 精品久久久91| 国产97免费视| 粗暴蹂躏中文一区二区三区| 亚洲人成五月天| 国外成人在线视频| 日韩国产中文字幕| 激情成人在线视频| 国产在线观看一区二区三区| 亚洲精品91美女久久久久久久| 国内免费久久久久久久久久久| 色综合久久88色综合天天看泰| 欧美精品在线网站| 国产精品久久久久久久久久新婚| 亚洲精品999| 国产视频综合在线| xvideos国产精品| 亚洲欧洲av一区二区| 成人黄色在线免费| 日日摸夜夜添一区| 日韩在线观看你懂的| 日本韩国在线不卡| 国产日韩在线亚洲字幕中文| 国产精品视频在线播放| 国产精品久久久久久超碰| 欧美精品一区二区三区国产精品| 浅井舞香一区二区| 欧美中文字幕视频| 77777少妇光屁股久久一区| 这里精品视频免费| 欧美亚洲国产视频小说| 日韩电影在线观看免费| 国产精品欧美日韩一区二区| 亚洲永久免费观看| 亚洲精品wwww| 91地址最新发布| 久久久久一本一区二区青青蜜月| 色偷偷偷综合中文字幕;dd| 日韩电影免费在线观看| 高清日韩电视剧大全免费播放在线观看| 国产视频精品va久久久久久| 国产婷婷97碰碰久久人人蜜臀| 色老头一区二区三区在线观看| 少妇av一区二区三区| 成人久久一区二区| 亚洲国产成人精品久久久国产成人一区| 91国自产精品中文字幕亚洲| 欧美午夜片在线免费观看| 欧美中文字幕第一页| 久久视频在线播放| 日日狠狠久久偷偷四色综合免费| 国产日韩精品在线播放| 日韩在线播放av| 国产一区二区三区高清在线观看| 欧美性猛交xxxxx免费看| 热门国产精品亚洲第一区在线| 国产亚洲一区二区在线| 国产激情综合五月久久| 亚洲精品国产精品久久清纯直播| 久久久999国产| 日日噜噜噜夜夜爽亚洲精品| 性金发美女69hd大尺寸| 国产成人亚洲综合91精品| 一本色道久久88综合亚洲精品ⅰ| 国产美女久久精品香蕉69| 乱亲女秽乱长久久久| 波霸ol色综合久久| 日韩av大片免费看| 国产成人免费av| 精品亚洲一区二区三区在线播放| 精品国产乱码久久久久久婷婷|