日期:2014-05-18 浏览次数:20463 次
select name from master.dbo.sysdatabases where name like '[固有名称]%' and crdate>='[数据库建立时间]'
------解决方案--------------------
select db_id('AcHerat') select db_name(11) /************* 先获取你数据库的ID,然后按照ID去获取你现在的数据库名,估计作业里涉及到数据库名的药做成动态SQL
------解决方案--------------------
14在数据库中拼字符串,也可以用参数
在实际的开发中,某些情况下在数据库中拼字符串不可避免,但又担心有特殊字符,导致拼出来的SQL有问题,其实数据库中拼字符串也可以使用参数,这就要用到dbo.sp_executesql ,这样就可以避免SQL注入和特殊字符导致的错误
如
DECLARE @IntVariable INT;--定义变量
DECLARE @SQLString NVARCHAR(500);--存储拼出来的SQL
DECLARE @ParmDefinition NVARCHAR(500);---存储拼出来的SQL中的参数
/* Build the SQL string one time. */
SET @SQLString =
N'SELECT * FROM AdventureWorks.Sales.Store WHERE SalesPersonID = @SalesID';
/* Specify the parameter format one time. */
SET @ParmDefinition = N'@SalesID int';--赋值
/* Execute the string with the first parameter value. */
SET @IntVariable = 275;--赋值
EXECUTE dbo.sp_executesql @SQLString, @ParmDefinition,
@SalesID = @IntVariable;
/* Execute the same string with the second parameter value. */
SET @IntVariable = 276;
EXECUTE dbo.sp_executesql @SQLString, @ParmDefinition,
@SalesID = @IntVariable;
------解决方案--------------------
使用动态SQL语句解决