本篇条目和详细操作均会发生调整,凡是和数据库有关的实践都将在这里记录,本篇使用的数据库为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没问题。