/*
可惜function里面不能使用sp_executesql(除非自己写一个相同功能的extended procedure),
要不写成function更为自然
*/
IF OBJECT_ID(
'strcat')
IS NOT NULL
DROP PROCEDURE strcat
GO
CREATE PROCEDURE strcat
@cTable NVarChar(
128),
@cField NVarChar(
128),
@cRet NVarChar(
4000) OutPut
With Encryption
AS
DECLARE @cSQLText NVARCHAR(
4000)
EXEC master..xp_sprintf @cSQLText Output,
' DECLARE @cValues NVarChar(4000)
SET @cValues = ''''
SELECT @cValues = @cValues + '','' + %s FROM %s
SET @cRet=@cValues', @cField, @cTable
SET @cRet =
''
EXEC sp_executesql @cSQLText, N
'@cRet NVarChar(4000) OutPut', @cRet Output
SET @cRet = STUFF(@cRet,
1,
1,
'')
GO
DECLARE @str NVARCHAR(
1000)
SET @str =
''
EXEC strcat
'INFORMATION_SCHEMA.TABLES',
'TABLE_NAME', @str OUTPUT
PRINT @str
DROP PROCEDURE strcat
Go