Friday, January 19, 2018

SQL : Dynamic SQL


Dynamic SQL in SQL Server


Declare @sql nvarchar(1000)

set @sql= 'Select * from Employees'

Execute sp_executesql @sql

~

Declare @sql nvarchar(1000)
Declare @params nvarchar(1000)

set @sql= 'Select * from Employees'  + '  Where FirstName=@FirstName and  LastName=@LastName'

set @params = '@FirstName nvarchar(100), @LastName nvarchar(100)'

--Print @sql

Execute sp_executesql @sql, @params , @FirstName='Test', @LastName ='Test'





Select * from INFORMATION_SCHEMA.TABLES

~

DECLARE @SqlString  NVARCHAR(1000)
DECLARE @Count INT
DECLARE @TblName SYSNAME = (SELECT MIN(Table_Name) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE')
WHILE (@TblName IS NOT NULL)
BEGIN
SELECT @TblSchema=Table_Schema FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME= @TblName
SET @SqlString= 'SELECT @RecCount=COUNT(1) FROM' + @TblSchema + '.' +@TblName
EXEC sp_ExecuteSql @SqlString,N'@RecCount INT OUTPUT'
                                                       ,@RecCount= @Count OUTPUT;
PRINT 'The Table:""+@TblSchema+'.'+@TblName"" HAS'+CAST(@Count AS VARCHAR(1000))+'Records';
END

No comments:

Post a Comment