当前位置: 代码迷 >> Sql Server >> web项目中,直接执行插入字段的sql语句有关问题
  详细解决方案

web项目中,直接执行插入字段的sql语句有关问题

热度:8   发布时间:2016-04-24 09:36:34.0
web项目中,直接执行插入字段的sql语句问题。
/*
   2014年12月10日14:31:32
   用户: hezhietdata
   服务器: 192.168.0.101
   数据库: New_HuiYiEtData
   应用程序: 
*/

/* 为了防止任何可能出现的数据丢失问题,您应该先仔细检查此脚本,然后再在数据库设计器的上下文之外运行此脚本。*/
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
ALTER TABLE dbo.DealCase ADD
A varchar(50) NULL
GO
COMMIT
select Has_Perms_By_Name(N'dbo.DealCase', 'Object', 'ALTER') as ALT_Per, Has_Perms_By_Name(N'dbo.DealCase', 'Object', 'VIEW DEFINITION') as View_def_Per, Has_Perms_By_Name(N'dbo.DealCase', 'Object', 'CONTROL') as Contr_Per 



把这条语句放入:

/// <summary>
    /// 执行多条SQL语句,实现数据库事务。
    /// </summary>
    /// <param name="SQLStringList">多条SQL语句</param>
    public static int ExecuteSqlTran(List<String> SQLStringList)
    {
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            SqlTransaction tx = conn.BeginTransaction();
            cmd.Transaction = tx;
            try
            {
                int count = 0;
                for (int n = 0; n < SQLStringList.Count; n++)
                {
                    string strsql = SQLStringList[n];
                    if (strsql.Trim().Length > 1)
                    {
                        strsql = " SET ANSI_WARNINGS OFF " + strsql + " SET ANSI_WARNINGS on ";
                        cmd.CommandText = strsql;
                        count += cmd.ExecuteNonQuery();
                    }
                }
                tx.Commit();
                return count;
            }
            catch
            {
                tx.Rollback();
                return 0;
            }
        }
    }

执行时出现Go附近有语法错误,我直接copy到数据库中查询窗口执行并无异常。请问是怎么回事?
------解决思路----------------------
把go去掉,既然是一个事务,不要用go,go是批处理的终止符
  相关解决方案