本篇条目和详细操作均会发生调整,凡是和数据库有关的实践都将在这里记录,本篇使用的数据库为sqlServer。
常用SQL语句总结
关于库,表的操作
- 查找库内所有具有某个字段的表名
SELECT COLUMN_NAME,TABLE_NAME FROM INFORMATION_SCHEMA.columns WHERE COLUMN_NAME ='TenantID'
- 查询库内所有表的名称
SELECT NAME,* FROM SYSOBJECTS WHERE XTYPE='U'
存储过程实践
创建与修改
存储过程执行流程
1,首先创建空存储过程,删除多余参数,点击执行,不保存
2,找到创建的存储过程,传入参数,定义返回值和要执行的sql
3,通过传入参数实现sql的动态拼接
标准的存储过程
USE [User] GO /****** Object: StoredProcedure [dbo].[****] Script Date: 2017/11/28 21:35:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- ============================================= ALTER PROCEDURE [dbo].[****] ( @tblName varchar(255), -- 表名如:'xtest' @id uniqueidentifier, --Guid类型 @tenantId int ) AS declare @strSql nvarchar(1000) print @strSql set @strSql=' SELECT * FROM '+@tblName +' where ID= '''+ CONVERT(varchar(40), @id) +''' and TenantID='+ CONVERT(varchar(15), @tenantId)+'' EXECUTE sp_executesql @strSql
检测存储过程
ALTER PROCEDURE [dbo].[****] ( @id int, --int类型 @tblName varchar(255), -- 表名如:'xtest' @application varchar(255) ) AS declare @strSql nvarchar(1000) set @strSql=' SELECT * FROM '+@tblName +' where Application = '''+@application+''' and TenantID = '+ CONVERT(varchar(255), @id)+'' --print @strSql//第一步 --EXECUTE sp_executesql @strSql --exec [dbo].[****] '203784', 'UserPermission', 'abc' //第一步 --SELECT * FROM UserPermission where [Application]='abc' and TenantID= 6666 //第二步 第一步:写上如上所示的第一步部分,注释掉存储过程的生成,查看错误出现在哪儿,后边三个是参数传递,以逗号隔开 第二步:存储过程执行无误后,写上如上所示的第二步部分,检测sql语句是否执行成功
测试方法:传入参数,得到自己想要的值则sql没问题。