Sql 存储过程 @strSQl 子句的应用

SELECT * FROM dbo.YHZH
--删除外键
ALTER TABLE [dbo].[JHFKDMX1]  drop  FK_YHZH_JHFKDMX1
ALTER TABLE [dbo].[XHSKDMX1]  drop  FK_YHZH_XHSKDMX1
ALTER TABLE [dbo].[QTFYDMX1]  drop  FK_YHZH_QTFYDMX1
ALTER TABLE [dbo].[QTSKDMX1]  drop  FK_YHZH_QTSKDMX1
--修改数据
UPDATE yhzh SET zhdm = ‘1001‘ WHERE zhdm = ‘101‘
UPDATE yhzh SET zhdm = ‘1002‘ WHERE zhdm = ‘201‘
UPDATE yhzh SET zhdm = ‘1002.‘+ RIGHT(zhdm,2) WHERE LEN(zhdm) = 5
--添加外键
ALTER TABLE [dbo].[JHFKDMX1] WITH NOCHECK ADD CONSTRAINT [FK_YHZH_JHFKDMX1] FOREIGN KEY ([KMDM]) REFERENCES [dbo].[YHZH] ([ZHDM])
ALTER TABLE [dbo].[XHSKDMX1] WITH NOCHECK ADD CONSTRAINT [FK_YHZH_XHSKDMX1] FOREIGN KEY ([KMDM]) REFERENCES [dbo].[YHZH] ([ZHDM])
ALTER TABLE [dbo].[QTFYDMX1] WITH NOCHECK ADD CONSTRAINT [FK_YHZH_QTFYDMX1] FOREIGN KEY ([KMDM]) REFERENCES [dbo].[YHZH] ([ZHDM])
ALTER TABLE [dbo].[QTSKDMX1] WITH NOCHECK ADD CONSTRAINT [FK_YHZH_QTSKDMX1] FOREIGN KEY ([KMDM]) REFERENCES [dbo].[YHZH] ([ZHDM])

--创建存储过程 修改其他表中的数据

CREATE PROCEDURE UPDATEKMDM
    @tableN VARCHAR(50) ,
    @col VARCHAR(50)
AS
 BEGIN
   DECLARE @strSQL VARCHAR(8000)
    SET @strSQL=‘UPDATE ‘+ @tableN+
    ‘ SET ‘+    @col +‘= ‘‘1001‘‘‘+
    ‘ WHERE ‘ +  @col +‘= ‘‘101‘‘‘  +
    ‘ UPDATE ‘+ @tableN+
    ‘ SET ‘+    @col +‘= ‘‘1002‘‘‘+
    ‘ WHERE ‘ +  @col +‘=‘‘201‘‘‘  +
     ‘ UPDATE ‘+ @tableN+
    ‘ SET ‘+    @col +‘= ‘‘1002.‘‘ + RIGHT(‘+@col+‘, 2)‘+
    ‘ WHERE  LEN(‘+@col+‘) = 5 ‘ ;

END
PRINT @strSQL;       --打印sql语句便于调试,可省略
EXEC (@strSQL)

--执行存储过程

EXEC UPDATEKMDM @tableN=‘QTSKDMX1‘, @col=‘KMDM‘ ;
EXEC UPDATEKMDM @tableN=‘QtSkdMX1‘, @col=‘KMDM‘ ;

EXEC UPDATEKMDM @tableN=‘XJYHTZD‘, @col=‘TZKM‘ ;
EXEC UPDATEKMDM @tableN=‘JHFKDMX1‘, @col=‘KMDM‘ ;

EXEC UPDATEKMDM @tableN=‘QTSKDMX1‘, @col=‘KMDM‘ ;
EXEC UPDATEKMDM @tableN=‘XHSKDMX1‘, @col=‘KMDM‘ ;

EXEC UPDATEKMDM @tableN=‘GZHSDMX2‘, @col=‘KMDM‘ ;
EXEC UPDATEKMDM @tableN=‘DKGZT_SK‘, @col=‘KMDM‘ ;

EXEC UPDATEKMDM @tableN=‘DBJRD‘, @col=‘LLR‘ ;
EXEC UPDATEKMDM @tableN=‘QDDBD‘, @col=‘LLR‘ ;

EXEC UPDATEKMDM @tableN=‘JHFKD‘, @col=‘LLR‘ ;
EXEC UPDATEKMDM @tableN=‘JHFYD‘, @col=‘LLR‘ ;

EXEC UPDATEKMDM @tableN=‘XHSKD‘, @col=‘LLR‘ ;
EXEC UPDATEKMDM @tableN=‘XHFYD‘, @col=‘LLR‘ ;

EXEC UPDATEKMDM @tableN=‘PHJRD‘, @col=‘LLR‘ ;
EXEC UPDATEKMDM @tableN=‘GZHSD‘, @col=‘LLR‘ ;

EXEC UPDATEKMDM @tableN=‘SDJSD‘, @col=‘LLR‘ ;
EXEC UPDATEKMDM @tableN=‘SDPHD‘, @col=‘LLR‘ ;

EXEC UPDATEKMDM @tableN=‘JHFKD‘, @col=‘LLR‘ ;
EXEC UPDATEKMDM @tableN=‘JHFYD‘, @col=‘LLR‘ ;

EXEC UPDATEKMDM @tableN=‘JORDER‘, @col=‘LLR‘ ;
EXEC UPDATEKMDM @tableN=‘DKGZT‘, @col=‘LLR‘ ;

--EXEC UPDATEKMDM @tableN=‘PFFXD‘, @col=‘LLR‘ ;
EXEC UPDATEKMDM @tableN=‘PFJRD‘, @col=‘LLR‘ ;

EXEC UPDATEKMDM @tableN=‘PFTHD‘, @col=‘LLR‘ ;
EXEC UPDATEKMDM @tableN=‘PFXHD‘, @col=‘LLR‘ ;

DROP PROCEDURE UPDATEKMDM
时间: 2024-08-29 13:00:05

Sql 存储过程 @strSQl 子句的应用的相关文章

sql存储过程和事务的应用

在去年,学习数据库的时候就学过存储过程了.一直都只知道一些理论,却不知道如何去使用.时隔一年,终于找到如何使用存储过程了. 在机房收费系统中,有些操作,需要多次执行sql语句,多次执行完成才算是完成这个事件流.但是如果其中有一个环节出了错误,那么没出错误的那些操作是不是就多余了. 执行存储过程,就是执行多句SQl语句.而事务,是为了控制这些语句 要么都做,要么 都不做. 在机房收费系统中,执行sql语句的时候. 一般的sql语句使用方法:定义一个字符串,用于存放sql语句.之后指明command

finereport报表,使用带参数的sql存储过程,报没有返回数据集的错

原因:在SqlServer数据库中,若定义的存储过程中包含有insert/update等更新操作时,在设计器中对存储过程进行调用时,会提示没有返回数据集的错误. 解决方法:修改存储过程,在begin 后面添加 SET NOCOUNT ON. 不管多复杂的sql存储过程 只需要在第一个大的begin后面添加 如下: ALTER proc [dbo].[proc_enterylist] @qybm varchar(50),@strWhere varchar(2000)='',@stratrow in

SQL存储过程分页(通用的拼接SQL语句思路实现)

多表通用的SQL存储过程分页 USE [EmailCenter] GO /****** Object: StoredProcedure [dbo].[Common_PageList] Script Date: 2016/2/29 11:00:19 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROC [dbo].[Common_PageList] ( @tab nvarchar(200),---表名 @strFl

C#使用SQL存储过程完整流程

 C#使用SQL存储过程完整流程 转载地址:http://blog.csdn.net/yangyuankp/article/details/7057922 标签: 存储sqlc#数据库stringsecurity 2011-12-09 17:29 8164人阅读 评论(1) 收藏 举报 本文章已收录于: 分类: 技术文章(50) 作者同类文章X 版权声明:本文为博主原创文章,未经博主允许不得转载. 唉,只怪自己学术不精,现在才学习SQL存储过程,从网上找了不少资料,可是很凌乱,定位也比较高,

怎样SQL存储过程中执行动态SQL语句

MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能,还可以编写更安全的代码.EXEC在某些情况下会更灵活.除非您有令人信服的理由使用EXEC,否侧尽量使用sp_executesql.1.EXEC的使用 EXEC命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处

SQL存储过程和函数

SQL存储过程: 由来:在具体应用中,一个完整的操作会包含多条SQL语句,在执行过程中需要根据前面SQL语句的执行结果有选择的执行后面的SQL语句.因此,mysql提供了数据库对象存储过程和函数. 定义:存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令.和函数的区别在于,函数有返回值,存储过程没有. 优点: 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度.2.当对数据库进行复杂操作时,

插入订单并且输出订单号的sql存储过程

--插入订单-- create proc InsertOrders ( @OrderNumber varchar(300), @OrderState varchar(30), @OrderType varchar(30), @OrderTime DateTime, @OrderFirm varchar(300), @OrderMoney decimal(8,2), @SendWayMoney decimal(8,2), @RegisterId int, @CoalitionOrdersId in

创建sql自定义的函数及商品分页sql存储过程

--商品筛选时判断品牌ID是否存在 --select dbo.isValite(94,94)create function isValite(@brandId int,@bId int)returns intas begin Declare @rNumber int if @brandId = @bId set @rNumber = 1 else set @rNumber = 0 if @bId = 0 set @rNumber = 1 return @rNumberendgo --判断商品筛选

SQL 存储过程 分页

set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: *** -- Create date: 2014-03-27 20:00 -- Description: 采用最新的 row_number() over 技术高效分页方法 -- ============================================= ALTER PRO