zoukankan      html  css  js  c++  java
  • SQL 2008 TSQL支持表变量参数(转)

     最近装了VS2010尝鲜。在Win7下速度明显快了很多。顺便装了Microsoft sql server 2008 R2,在看SQL 2008T-SQL语法的增强的时候注意到了一个表变量作为参数传递的新语法觉得很不错。

      首先建立一张测试表:

    CREATE TABLE [dbo].[us](
        [id] [int] IDENTITY(1,1) NOT NULL,
        [name] [varchar](50) NULL,
        [pass] [varchar](50) NULL,
     CONSTRAINT [PK_us] PRIMARY KEY CLUSTERED 
    (
        [id] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]

    定义一个自定义表类型:

     

    CREATE TYPE [dbo].[UsTable] AS TABLE(
        [id] [int] IDENTITY(1,1) NOT NULL,
        [NAME] [varchar](50) NULL
    )

    然后我们写一个存储过程来传递这个类型,这里我们模拟用户批量添加默认密码为123

     

    CREATE  PROC [dbo].[addus]
     @tab [UsTable] READONLY
    AS
    BEGIN  
         INSERT INTO us(name,pass) SELECT name,'123' FROM @tab
    END

     

    测试一下:

     

    –-定义一个自定义表类型的变量
    DECLARE @us UsTable 
    --插入模拟数据
    INSERT INTO @us (name) VALUES ('dc')
    INSERT INTO @us (name) VALUES ('ada')
    INSERT INTO @us (name) VALUES ('dacey')
    --执行存储过程
    EXEC dbo.addus @tab = @us

     查询us表看下是否都插入进去了:
      1 dc 123
      2 ada 123
      3 dacey 123

  • 相关阅读:
    (备忘)jeecg的$.dialog的一些参数
    jquery中的ajax方法(备忘)
    linux(centos7)设置tomcat开机启动
    centos7设置静态IP地址
    golang 之 sql
    golang 之 flag
    golang 之 context包
    golang 之文件操作
    golang之strings
    golang 函数和方法
  • 原文地址:https://www.cnblogs.com/timy/p/3056263.html
Copyright © 2011-2022 走看看